2017-07-24 4 views
0

J'ai webView simple dans android et je veux lire la vidéo dans cette URL. mais il montre erreur vidéo n'est pas capable de jouer dans webview. this error is coming while playingpourquoi Youtube vidéo ne joue pas dans webview android

ici est mon code source: -

WebView webView; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.livepage); 
    //Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_bottom7); 
    webView = (WebView)findViewById(R.id.webView); 
    WebSettings webSettings = webView.getSettings(); 
    webSettings.setPluginState(WebSettings.PluginState.ON); 
    webSettings.setJavaScriptEnabled(true); 
    webSettings.setUseWideViewPort(true); 
    webSettings.setLoadWithOverviewMode(true); 
    webView.setLayerType(View.LAYER_TYPE_SOFTWARE,null); 
    webView.loadUrl("https://www.youtube.com/channel/UCLmI8_hVUqA251PzK7OSvQw"); 
    webView.setWebChromeClient(new WebChromeClient()); 
    webView.setWebViewClient(new loadWebView()); 
} 

private class loadWebView extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return false; 
    } 
} 

ici est menifest: -

<application 
    ... 
    android:supportsRtl="true" 
    android:largeHeap="true" 
    android:hardwareAccelerated="true"> 

merci à l'avance

+0

https://inducesmile.com/android/how-to-play-youtube-video-inside-android-webview-using-video-url/ –

Répondre

0

essayer

String frameVideo = "<html><body>Video From YouTube<br><iframe width=\"420\" height=\"315\" src=\"https://www.youtube.com/embed/47yJ2XCRLZs\" frameborder=\"0\" allowfullscreen></iframe></body></html>"; 

    WebView displayYoutubeVideo = (WebView) findViewById(R.id.mWebView); 
    displayYoutubeVideo.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return false; 
     } 
    }); 
    WebSettings webSettings = displayYoutubeVideo.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    displayYoutubeVideo.loadData(frameVideo, "text/html", "utf-8"); 

ou vous pouvez essayer cette intégration api youtube Oui! Découvrez l'API Android Youtube Player et l'API YouTube.

Android Player:

YouTube API:

YouTube Player API Sample

and follow this link to get video from channel

+0

cela ne fonctionne pas avec mon application – Abhay

+0

@Abhay avez-vous eu erreur parce qu'il travaille sur mon appareil réel juste vérifier pour appareil réel –

+0

u peut vérifier avec mes url..i veulent ouvrir premier canal et onclick vidéo, il devrait jouer .. – Abhay

0

Selon votre question, vous ne l'avez pas ajouté un lien vidéo youtube. Vous utilisez une URL de chaîne YouTube. Quoi qu'il en soit, essayez ceci. Ça marche bien.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    String frameVideo = "<html><body><iframe width=\"420\" height=\"315\" src=\"https://www.youtube.com/embed/PMBcMBhsm80\" frameborder=\"0\" allowfullscreen></iframe></body></html>"; 

    WebView displayYoutubeVideo = (WebView) findViewById(R.id.mWebView); 
    displayYoutubeVideo.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return false; 
     } 
    }); 
    WebSettings webSettings = displayYoutubeVideo.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    displayYoutubeVideo.loadData(frameVideo, "text/html", "utf-8"); 
} 
+0

d'abord, je veux ouvrir ma chaîne et que je veux jouer à la vidéo. – Abhay

+0

Avez-vous ajouté l'autorisation Internet et les autorisations appropriées dans le manifeste? – coderaizer

+0

oui .. j'ai ajouté permission..mon page de canal est l'ouverture, mais tout en jouant de la vidéo son showinh..une erreur est survenue – Abhay

0

d'abord permettre

webview.getSettings().setJavaScriptEnabled(true); 

Et puis

Si vous cliquez sur un lien dans la page Web de la WebView, cette page ne sera pas chargé à l'intérieur de votre WebView. Pour ce faire, vous devez étendre votre classe à WebViewClient et remplacer sa méthode. Sa syntaxe est:

private class MyBrowser extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
0

oui je l'ai trouvé ma solution de cette question, ici solution,

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_bottom7); 
    webView = (WebView)findViewById(R.id.videoView); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setDomStorageEnabled(true); 
    webView.loadUrl("https://www.youtube.com/channel/UCLmI8_hVUqA251PzK7OSvQw"); 

    webView.setWebViewClient(new loadWebView()); 
} 
private class loadWebView extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
} 

besoin d'ajouter

webSetting.setDomStorageEnable(true); 

fonctionne bien pour moi !!!!!