【发布时间】:2013-06-08 23:22:35
【问题描述】:
我正在使用 WebView 来显示嵌入的 Youtube 视频,它适用于 Galaxcy S2 (OS 2.3.5) 而不适用于 Nexus S (OS 2.3.4),我得到的只是没有任何视频显示的白屏.
这是我正在使用的代码 sn-p 和 Manifest 文件中的声明:
private WebView wv;
private void setWebView()
{
wv = (WebView) findViewById(R.id.webView);
wv.setWebChromeClient(new WebChromeClient());
wv.getSettings().setPluginState(WebSettings.PluginState.ON);
wv.setWebViewClient(new WebViewClient());
wv.getSettings();
wv.setBackgroundColor(0x00000000);
wv.setKeepScreenOn(true);
wv.setHorizontalScrollBarEnabled(false);
wv.setVerticalScrollBarEnabled(false);
wv.getSettings().setBuiltInZoomControls(true);
final String mimeType = "text/html";
final String encoding = "UTF-8";
String html = getHTML();
wv.loadDataWithBaseURL("", html, mimeType, encoding, "");
}
public String getHTML()
{
String html = "<html>"
+ "<head>"
+ "</head>"
+ "<body style=\"border: 0; padding: 0\">"
+ "<iframe "
+ "type=\"text/html\" "
+ "class=\"youtube-player\" "
+ "width= 100%\""
+ "\" "
+ "height= 95%\""
+ "\" "
+ "src=\"http://www.youtube.com/v/"
+ selected_video
+ "?controls=0&showinfo=0&showsearch=0&modestbranding=0" +
"&autoplay=1&fs=1&vq=hd720\" " + "frameborder=\"0\"></iframe>"
+ "</body>"
+ "</html>";
return html;
}
注意:参数“selected_video”是视频的哈希值(VideoID)。
Manifest 文件中的声明:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=http://schemas.android.com/apk/res/android
.
.
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
.
.
android:hardwareAccelerated="true" >
.
.
如果您发现我应该在我的代码中更改任何内容,或者帮助提供可以支持所有 Android 设备和操作系统以高质量显示嵌入式(应用内)Youtube 视频的完整代码,请告诉我。
更新: 请注意,我正在寻找的解决方案应该显示高分辨率视频。我使用 VideoView 类在不同的设备和操作系统上工作,但视频质量不够好。因此,任何解决方案,包括 VideoView 或 WebView 或任何其他方式,只有在显示高质量的 YouTube 视频时才会被接受。感谢所有响应者!
【问题讨论】:
-
我不确定,但可能是 Flash 问题,Flash 安装在 Nexus S 中? stackoverflow.com/questions/5791035/…
-
我可以使用其他在我的 Nexus S 上执行相同操作的应用程序。我不希望 Flash 成为必须使用该应用程序...
-
我的意思是我认为它不起作用,因为 Youtube 需要 Flash,请检查设备是否可以浏览 YouTube 网站和观看电影?并让我知道结果(不要尝试 YouTube 应用程序只是 youtube 网站)maby ather 应用程序使用,youtube android 播放器? developers.google.com/youtube/android/player
-
我可以在不使用该应用的情况下在 youtube 网站上观看电影。
-
webview.getSettings().setPluginsEnabled(true);是一种已弃用的方法,尝试针对 min SDK 版本 8 (2.2) 并设置 webview.getSettings().setPluginState(WebSettings.PluginState.ON);
标签: android youtube android-webview android-youtube-api