2016-09-12 10 views
1

自動再生とミュート機能を備えたYoutubeビデオを再生するには、次のコードを使用していますが、ビデオを再生すると音楽アプリが機能しなくなりました。 時間...他のアプリの音楽と私のアプリからWeb Playビデオを再生

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");` 

おかげさまで、よろしくお願いいたします。

答えて

0

は、長い時間の後、私はフラグがプレーヤーの状態は準備ができたとき、 を真作り、(チェック)私はプレーヤーの一時停止を実行していたそのフラグを置くことでそれを固定し、これは、両方同時に

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 = 
を実行することができます

\ "" +ブール値(真)+ "\"

;} \ n ";

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

ここでこのように使用されています

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();*/ 
        } 

       } 
関連する問題