2016-09-12 4 views
1

Ich benutze folgenden Code funktioniert gut, um Youtube Video mit Autoplay und Stummschaltung Funktionalität zu spielen, aber wenn das Abspielen von Video dann meine Musik App funktioniert .. Nur einer arbeitet an eine Zeit, ...WebView Video von meiner App mit anderen App Musik spielen

mWebView = (WebView) findViewById(R.id.web); 
    String videoURL = "https://www.youtube.com/embed/R52bof3tvZs"; 

    String vid = "<html><body style=\"margin: 0; padding: 0\"><iframe width=\"100%\" height=\"100%\" src=\""+videoURL+"\" type=\"text/html\" frameborder=\"0\"></iframe><body><html>"; 

    WebChromeClient mWebChromeClient = new WebChromeClient(){ 
     public void onProgressChanged(WebView view, int newProgress) { 
     } 
    }; 

    mWebView.getSettings().setPluginState(WebSettings.PluginState.ON); 
    mWebView.setWebChromeClient(mWebChromeClient); 
    mWebView.setWebViewClient(new WebViewClient() { 
     public void onPageFinished(WebView view, String url) { 
      mWebView.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); 
     } 
    }); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setAppCacheEnabled(true); 
    mWebView.setInitialScale(1); 
    mWebView.getSettings().setLoadWithOverviewMode(true); 
    mWebView.getSettings().setUseWideViewPort(true); 
    if (Build.VERSION.SDK_INT < 17) { 
     Log.i("GPSNETWORK", "<17"); 
    } else { 
     Log.i("GPSNETWORK", Build.VERSION.SDK_INT+">=17"); 
     mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false); 
    } 

    String myUrl = "&lt;html&gt;&lt;body style='margin:0px;padding:0px;'&gt;\n" + 
      "  &lt;script type='text/javascript' src='http://www.youtube.com/iframe_api'&gt;&lt;/script&gt;&lt;script type='text/javascript'&gt;\n" + 
      "    var player;\n" + 
      "  function onYouTubeIframeAPIReady()\n" + 
      "  {player=new YT.Player('playerId',{events:{onReady:onPlayerReady}})}\n" + 
      "  function onPlayerReady(event){player.mute();player.setVolume(0);player.playVideo();}\n" + 
      "  &lt;/script&gt;\n" + 
      "  &lt;iframe id='playerId' type='text/html' width='1280' height='720'\n" + 
      "  src="+videoURL+"?enablejsapi=1&amp;rel=0&amp;playsinline=1&amp;autoplay=1&amp;showinfo=0&amp;autohide=1&amp;controls=0&amp;modestbranding=1' frameborder='0'&gt;\n" + 
      "  &lt;/body&gt;&lt;/html&gt;"; 
    mWebView.loadData(""+Html.fromHtml(myUrl), "text/html", "UTF-8");` 

Bitte helfen Sie mir, dank im Voraus.

Antwort

0

Nach langer Zeit, ich regelte es mit Flagge wahr zu machen, wenn der Spieler Zustand bereit ist, und Platzierung (Überprüfung) die Flagge, wo ich Pause von Spieler durchgeführt wird, lässt es beide gleichzeitig laufen

String myUrl = "&lt;html&gt;&lt;body style='margin:0px;padding:0px;'&gt;\n" + 
      "  &lt;script type='text/javascript' src='http://www.youtube.com/iframe_api'&gt;&lt;/script&gt;&lt;script type='text/javascript'&gt;\n" + 
      "    var player;\n" + 
      "  function onYouTubeIframeAPIReady()\n" + 
      "  {player=new YT.Player('playerId',{events:{onReady:onPlayerReady, onStateChange: onPlayerStateChange}})}\n" + 
      "  var done = false;\n" + 
      "  function onPlayerReady(event){player.mute();player.setVolume(0);player.playVideo();done = 

\ "" + bool (true) + "\"

;} \ n ";

private boolean bool(boolean b) 
{ 
    you_tube_started = b; 
    Log.e(TAG, "you_tube_started "+you_tube_started); 
    return b; 
} 

Hier verwendet wie diese

if (mMediaPlayer != null && isPrepared) { 
        if (mMediaPlayer.isPlaying()) { 
         Log.w(TAG, "AUDIOFOCUS_LOSS : Nothing you_tube_started "+you_tube_started); 
         if(!you_tube_started) 
          pausePlayer(); 
         pausedDueToAudioFocusLoss = true; 
         /*mMediaPlayer.stop(); 
         mMediaPlayer.reset();*/ 
        } 

       } 
Verwandte Themen