Android – WebView не воспроизводит видео на YouTube

У меня есть код WebView, с помощью которого я пытаюсь воспроизводить видео на YouTube на канале YouTube. Но все, что он делает, показывает значок spinner на видео и никогда не запускает видео. Кто-нибудь знает, как это исправить?

public class YoutubeActivity extends Activity { WebView webview = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); webview = new WebView(this); webview.getSettings().setAppCacheEnabled(false); webview.getSettings().setJavaScriptEnabled(true); webview.setInitialScale(1); webview.getSettings().setPluginState(PluginState.ON); webview.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); WebSettings webSettings = webview.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setBuiltInZoomControls(true); //webSettings.getMediaPlaybackRequiresUserGesture(); webSettings.setAllowContentAccess(true); webSettings.setEnableSmoothTransition(true); webSettings.setLoadsImagesAutomatically(true); webSettings.setLoadWithOverviewMode(true); webSettings.setSupportZoom(true); webSettings.setUseWideViewPort(true); setContentView(webview); webview.loadUrl("http://www.youtube.com/g33ktalktv"); } public void onBackPressed ( ) { //Class.forName("com.***.HTML5WebView").getMethod("onPause", (Class[]) null). //invoke(html5WebView, (Object[]) null); webview.clearView(); } @Override public void onStop() { super.onStop(); // your code webview.clearView(); } } 

И это проявление:

 <activity android:name="YoutubeActivity" android:label="Some string" android:hardwareAccelerated="true"/> 

Танк заранее!

Использование WebView для воспроизведения видео на YouTube потребует обширного тестирования и отладки на разных версиях ОС Android из-за разницы в функциональности и ошибках между Android 2.x и 4.x.

Менее подверженный ошибкам подход, который дает вам больше контроля, заключается в том, чтобы использовать API YouTube Android Player для встраивания видео YouTube в свое приложение, у них есть пример приложения, поэтому вам не должно быть слишком сложно, если вы будете следовать их шагам.

Вы пробовали использовать свой собственный WebChromeClient ? Этот вопрос представляется актуальным. WebView и HTML5 <video>

Вам нужно будет создать один из них и реализовать его самостоятельно, аналогично тому, что вы делаете для WebViewClient .

 webview.setWebChromeClient(new WebChromeClient() { @Override public void onShowCustomView(View view, CustomViewCallback callback) { super.onShowCustomView(view, callback); if (view instanceof FrameLayout) { FrameLayout frame = (FrameLayout) view; if (frame.getFocusedChild() instanceof VideoView) { VideoView video = (VideoView) frame.getFocusedChild(); frame.removeView(video); a.setContentView(video); video.setOnCompletionListener(this); video.setOnErrorListener(this); video.start(); } } } }); 

Убедитесь, что вы добавили webview.getSettings().setPluginsEnabled(true); К настройкам веб-просмотра.

И самое главное, для любой веб-страницы, загружаемой в WebView , убедитесь, что у вас есть разрешение INTERNET в вашем манифесте:

 <uses-permission android:name="android.permission.INTERNET"/> 

использование

 <application android:hardwareAccelerated="true" android:allowBackup="true"> </application> 

Прекрасно работает.

Intereting Posts