2016-08-01 32 views
0

私のアプリケーションで動画を再生するためにyoutube api playerを使用しています。Android Youtube APIプレーヤーが継続的に停止する

youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance(); 
    FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 
    transaction.add(R.id.youtube_view, youTubePlayerFragment).commit(); 

    playerStateChangeListener = new MyPlayerStateChangeListener(); 
    playbackEventListener = new MyPlaybackEventListener(); 

    youTubePlayerFragment.initialize(ApplicationConstants.YOUTUBE_API_KEY, new YouTubePlayer.OnInitializedListener() { 

     @Override 
     public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) { 
      mplayer = player; 
      player.setFullscreen(false); 
      player.setPlayerStateChangeListener(playerStateChangeListener); 
      player.setPlaybackEventListener(playbackEventListener); 
      player.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE); 
      if (!wasRestored) { 
       player.cueVideo(url); // Plays https://www.youtube.com/watch?v=fhWaJi1Hsfo 
      } 
     } 

     @Override 
     public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) { 
     } 

私は、私はPlayer APIの連続ストップを停止することができ、このフラグを使用して

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    int config = newConfig.orientation; 
    FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mYoutubeView.getLayoutParams(); 
    switch (config){ 
     case Configuration.ORIENTATION_LANDSCAPE : 
      mplayer.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE); 
      params.height = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 300,getResources().getDisplayMetrics()); 
      params.width = LinearLayout.LayoutParams.WRAP_CONTENT ;//(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 375,getResources().getDisplayMetrics()); 
      mYoutubeView.setLayoutParams(params); 
      break; 
     case Configuration.ORIENTATION_PORTRAIT : 
      params.height = LinearLayout.LayoutParams.WRAP_CONTENT; 
      params.width = LinearLayout.LayoutParams.MATCH_PARENT; 
      mYoutubeView.setLayoutParams(params); 
      break; 
    } 
} 

player.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE);

をデバイス構成の変更にプレーヤーのダイムを変更していますが、問題は、

です
  1. ユーザーがアプリケーションを最小限に抑えてビデオを再生しているとき(デバイスのホームボタンを押す)デバイスのフォントサイズを変更するには、デバイスのフォントサイズを変更します。
  2. 最小化を再開し、ビデオに移動して向きを水平に変更して、アプリケーションを最小化する前に再生していた前のビデオを表示します。
  3. player.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE);フラグを削除してもこの動作を回避できますが、動画は継続的に停止します。

答えて

1

cueVideo()の代わりにloadVideo()を使用してください。

関連する問題