2016-09-12 6 views
1

다음 코드를 사용하여 자동 재생 및 음소거 기능으로 YouTube 동영상을 재생할 수 있지만 동영상 재생 중에 내 음악 앱이 작동을 멈췄습니다. 하나만 작업하고 있습니다 시간은 ...다른 앱의 음악과 함께 내 앱에서 WebView 비디오 재생

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 = 
을 실행할 수 있습니다

\ ""+ 불리언 (TRUE) + "\"

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

       }