我做了很多研究,试图找出为什么html5视频无法在我的应用中正常播放。更具体地说,页面加载正常,您可以看到视频播放器的初始控件,但是当您在此处播放视频中的声音时,您看不到任何内容。
我正在使用webview来显示它并使用多个在线链接进行测试,例如:
这是我的网络视图代码:
String _location = "http://broken-links.com/tests/video/";
WebView wv = (WebView) findViewById(R.id.dsWebView);
wv.setWebChromeClient(new WebChromeClient()); //chromeClient());
wv.setWebViewClient(new HelloWebViewClient());
WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);
webSettings.setUseWideViewPort(true);
webSettings.setPluginsEnabled(true);
webSettings.setPluginState(PluginState.ON);
webSettings.setDomStorageEnabled(true);
webSettings.setAllowFileAccess(true);
wv.setInitialScale(50);
wv.loadUrl(_location);
private class HelloWebViewClient extends WebViewClient
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;//false;
}
}
我也更改了我的项目,以便它适用于Android 4.0及更高版本,并在我的清单文件中设置android:hardwareAccelerated =“true”。
另外,我确实在我的htc one x和chrome beta浏览器上的默认浏览器中测试了两个链接,它在两者上都完美地播放。这只是我的webview不起作用:(。
我基本上是想弄清楚我在网络视图中正确播放视频所缺少的内容。
感谢您提前提供任何帮助,
火
答案 0 :(得分:2)
尝试这个
wv.setLayerType(View.LAYER_TYPE_HARDWARE, null);
答案 1 :(得分:1)
最后!我想出了我的问题。这是我的清单文件中的意图过滤器。如果我发布它,可能会有人能够更快地发现问题,对不起。
<manifest>
<uses-sdk android:minSdkVersion="7"
android:targetSdkVersion="14" />
<supports-screens android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:hardwareAccelerated="true">
<activity android:name=".Main"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter
android:icon="@drawable/icon"
android:label="Test File"
android:priority="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="*"
android:pathPattern=".*\\.test"/>
</intent-filter>
<intent-filter
android:icon="@drawable/icon"
android:label="Test File"
android:priority="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="*"
android:pathPattern=".*\\.test"/>
</intent-filter>
<intent-filter
android:icon="@drawable/icon"
android:label="Test File"
android:priority="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" android:host="*"
android:pathPattern=".*\\.test"/>
</intent-filter>
<intent-filter
android:icon="@drawable/icon"
android:label="Test File"
android:priority="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" android:host="*"
android:pathPattern=".*\\.test"/>
</intent-filter>
</activity>
<activity android:name="myWebView"
android:configChanges="keyboardHidden|orientation"
></activity>
</application>
我必须删除我添加的用于从“.test”的任何文件启动我的应用程序的intent过滤器。 基本上删除这部分它开始工作:
<intent-filter
android:icon="@drawable/icon"
android:label="Test File"
android:priority="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="*"
android:pathPattern=".*\\.test"/>
</intent-filter>
<intent-filter
android:icon="@drawable/icon"
android:label="Test File"
android:priority="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="*"
android:pathPattern=".*\\.test"/>
</intent-filter>
<intent-filter
android:icon="@drawable/icon"
android:label="Test File"
android:priority="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" android:host="*"
android:pathPattern=".*\\.test"/>
</intent-filter>
<intent-filter
android:icon="@drawable/icon"
android:label="Test File"
android:priority="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" android:host="*"
android:pathPattern=".*\\.test"/>
</intent-filter>
现在我的下一个问题是,如果它导致我的html5不能正常工作,我怎么能从.test文件启动我的应用程序。 (我想我可以删除http过滤器,但我想点击下载并打开我的.test文件的网页上的链接。