2017-03-08 73 views
0

目前正在使用youtube api顯示視頻的android應用程序。在這個應用程序中,我使用youtubeplayerfragment在片段中顯示視頻。當我在全屏視圖中單擊全屏視圖方向將屏幕更改爲橫向模式,並且當我單擊從全屏模式退出時,屏幕仍然保持橫向模式,甚至嘗試通過旋轉設備進行旋轉,並且每次屏幕方向更改視頻開始從開始。如何保持視頻狀態的方向變化以及如何解決我的問題。屏幕方向不適用youtubePlayerfragment

我對YouTube的代碼是在這裏:

if (savedInstanceState == null) { 
    mYouTubePlayerFragment.initialize(Constants.YOUTUBEDEVELOPERKEY, 
     new YouTubePlayer.OnInitializedListener() { 
      @Override 
      public void onInitializationSuccess(YouTubePlayer.Provider provider, 
       YouTubePlayer youTubePlayer, boolean b) { 


       //on player full screen mode 
       youTubePlayer.setShowFullscreenButton(true); 
       youTubePlayer.setOnFullscreenListener(
        new YouTubePlayer.OnFullscreenListener() { 
         @Override 
         public void onFullscreen(boolean b) { 
          Log.d(TAG, String.valueOf(b)); 
         } 
        }); 

       //play video in the player 
       if (!b) { 
        youTubePlayer.loadVideo(args.getString(Constants.VIDEOID)); 
        youTubePlayer.play(); 
       } else { 
        youTubePlayer.play(); 
       } 
      } 

      @Override 
      public void onInitializationFailure(
       YouTubePlayer.Provider provider, 
       YouTubeInitializationResult youTubeInitializationResult) { 
       Log.d("FeedVideoFragment", youTubeInitializationResult.toString()); 
       youTubeInitializationResult.getErrorDialog(getActivity(), 0); 
      } 
     }); 
    getActivity().getSupportFragmentManager().beginTransaction().add(R.id.youtube_fragment, 
     mYouTubePlayerFragment, MYYOUTUBEFRAGMENT).commit(); 

} else { 

    mYouTubePlayerFragment.initialize(Constants.YOUTUBEDEVELOPERKEY, 
     new YouTubePlayer.OnInitializedListener() { 
      @Override 
      public void onInitializationSuccess(YouTubePlayer.Provider provider, 
       YouTubePlayer youTubePlayer, boolean b) { 


       //on player full screen mode 
       youTubePlayer.setShowFullscreenButton(true); 
       youTubePlayer.setOnFullscreenListener(
        new YouTubePlayer.OnFullscreenListener() { 
         @Override 
         public void onFullscreen(boolean b) { 

         } 
        }); 

       //play video in the player 
       if (!b) { 
        youTubePlayer.loadVideo(savedInstanceState.getString("videoId")); 
        youTubePlayer.play(); 
       } else { 
        youTubePlayer.play(); 
       } 
      } 

      @Override 
      public void onInitializationFailure(
       YouTubePlayer.Provider provider, 
       YouTubeInitializationResult youTubeInitializationResult) { 
       Log.d("FeedVideoFragment", youTubeInitializationResult.toString()); 
       youTubeInitializationResult.getErrorDialog(getActivity(), 0); 
      } 
     }); 
    getActivity().getSupportFragmentManager().findFragmentByTag(MYYOUTUBEFRAGMENT); 


} 
+0

您可以在此[文件](HTTPS驗證:// developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayer),如果您在實現屏幕方向上做了正確的事情。此[教程](https://guides.codepath.com/android/Streaming-Youtube-Videos-with-YouTubePlayerView)向您展示如何使用YouTube播放器中的橫向模式播放視頻。所以請嘗試檢查它是否可以幫助你。我也發現這個與你的問題有關的[SO問題](http://stackoverflow.com/questions/15012754)。 – KENdi

回答

0

用於保存視頻狀態使用 android:configChanges="keyboardHidden|orientation|screenSize"在 活動代碼,您的片段出現如:

<activity android:name=".activities.MainActivity" 
    android:configChanges="keyboardHidden|orientation|screenSize"> 

在onFullscreen方法檢查,如果播放器全屏設置與否

@Override 
     public void onFullscreen(boolean b) { 
      Log.e("onFullscreen",""+b); 
      if(b) 
       fullscreen=1; 
      else fullscreen=2; 
     } 

在backpress bethod檢查是否全屏設置,那麼設置爲false

@Override 
      public void onBackPressed() { 
       if(fullscreen==1) 
       { 
        if(this.player!=null) 
         youTubePlayer.setFullscreen(false); 
       } 
       else 
        super.onBackPressed(); 
      } 

我希望它可以幫助你,對不起我的英文不好