【问题标题】:Android Youtube api player stops continuouslyAndroid Youtube api播放器不断停止
【发布时间】:2016-12-06 01:47:24
【问题描述】:

我正在使用 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) {
        }

我正在更改设备配置更改的播放器硬币,

@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;
    }
}

使用此标志我可以停止播放器 api 中的连续停止,player.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE);

但问题是,

  1. 播放视频时,如果用户最小化应用程序(按设备主页按钮)并在设置 ->font-size
  2. 中更改设备字体大小
  3. 重新打开最小化,转到视频并将方向更改为水平,它将显示我在最小化应用程序之前播放的上一个视频。
  4. 如果我删除了player.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE); 标志,如何避免这种行为,但随后视频将连续停止。

【问题讨论】:

    标签: android video youtube youtube-api android-youtube-api


    【解决方案1】:

    尝试使用 loadVideo() 而不是 cueVideo()

    【讨论】:

      猜你喜欢
      • 2013-10-18
      • 2013-01-04
      • 2012-08-24
      • 2014-11-12
      • 2016-12-26
      • 2019-01-11
      • 2017-11-12
      • 1970-01-01
      • 2016-08-29
      相关资源
      最近更新 更多