lit*_*ove 14 youtube android webview
这是关于在webview中使用最新的嵌入格式(iframe)加载youtube视频.
iframe嵌入格式的示例
<iframe width="637" height="358" src="http://www.youtube.com/embed/olC42gO-Ln4?fs=1&feature=oembed" frameborder="0" allowfullscreen=""></iframe>
Run Code Online (Sandbox Code Playgroud)
在Android 2.3.3和3.2设备(HTC Desire和Asus Transformer)上测试代码,webview只显示一个黑色矩形.
我试着从vimeo进行类似的嵌入
<iframe src="http://player.vimeo.com/video/35693267" width="640" height="360" frameborder="0"></iframe>
Run Code Online (Sandbox Code Playgroud)
在2.3中,视频播放正确
在3.2中,黑色矩形闪烁并消失,iframe区域为空白.
最后,如果使用旧的嵌入格式(使用对象标签),视频将在2.3.3和3.2中的webview内正确显示.
我已经检查了相关问题并添加了
android:hardwareAccelerated="true"
Run Code Online (Sandbox Code Playgroud)
在应用程序和/或活动标签中,但在2.3和3.2设备中仍然没有视频.
这是一个大问题,因为现在有更多网站使用最新格式(iframe)来嵌入他们的YouTube视频.Android/Youtube团队,请看看这个问题.
Mik*_*maa 11
Android浏览器完全是错误的视频播放和嵌入.它根本不适用于各种设备.试图让它工作只是浪费你的时间.我的建议是,您不要尝试包含<iframe>但只是提供直接链接到YouTube页面或h264文件的视频缩略图.
早期的讨论,有一个可能的解决方案.
Sak*_*boy 10
如果您想在自己内部播放视频,则WebView需要使用基本URL加载数据!
不这样做:
mContentWebView.loadDataWithBaseURL(null, webViewContentString,
"text/html", "UTF-8", null);
Run Code Online (Sandbox Code Playgroud)
做这个安排:
//veryVeryVery important for playing the videos!
mContentWebView.loadDataWithBaseURL(theBaseUrl, webViewConentString,
"text/html", "UTF-8", null);
Run Code Online (Sandbox Code Playgroud)
基本URL将类似于您在其中显示的"原始"网址WebView.因此,假设您正在制作新闻阅读器,WebView's基本网址将成为原始故事的网址.
祝好运!
还记得设置你的WebView ......就像这样......
mContentWebView.setWebChromeClient(new WebChromeClient());
mContentWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
mContentWebView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
mContentWebView.setWebViewClient(new WebViewClient());
mContentWebView.getSettings().setJavaScriptEnabled(true);
Run Code Online (Sandbox Code Playgroud)
您需要在Manifest中启用硬件加速(仅适用于SDK 14及更高版本).
防爆.硬件加速开:
<application
android:name="com.example.app"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:hardwareAccelerated="true">
<!-- hardwareAccelerated requires SDK 14 -->
...
</application>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21903 次 |
| 最近记录: |