Я использую WebView для отображения встроенного видео Youtube и работает на Galaxcy S2 (OS 2.3.5) и не на Nexus S (OS 2.3.4), все, что я получаю, это белый экран без какого-либо видеодисплея.
Вот фрагмент кода, который я использую, и объявления в файле манифеста:
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).
Объявления в файле манифеста:
<?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 и ОС для отображения встроенного (In-App) видео Youtube с высоким качеством.
UPDATE: Обратите внимание, решение, которое я ищу, должно отображать видео высокого разрешения. Я работал над различными устройствами и ОС с помощью класса VideoView, но качество видео недостаточно. Поэтому любое решение, включая VideoView или WebView или любым другим способом, будет приниматься только в том случае, если оно будет отображать видео высокого качества YouTube. Спасибо всем ответчикам!