【问题标题】:Youtube player stop when rotatedYoutube 播放器在旋转时停止
【发布时间】:2023-03-15 21:35:01
【问题描述】:

当我在 portrain 状态开始播放视频然后旋转手机时,我的问题出现了。视频播放几秒钟并停止。我在清单中设置了这个配置

android:configChanges="orientation|keyboard|keyboardHidden|screenSize"

我的片段类

public class YoutubePlayerFragment extends YouTubePlayerFragment {
    static YouTubePlayer player;
    static Boolean isPlayPlayer;
    static int playPosition;

    public YoutubePlayerFragment(){ }

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        this.setRetainInstance(true);
    }

    public static YoutubePlayerFragment newInstance(String url, String key){
        YoutubePlayerFragment fragment = new YoutubePlayerFragment();

        Bundle args = new Bundle();

        args.putString("url", url);
        args.putString("key", key);
        fragment.setArguments(args);
        fragment.init();

        return fragment;
    }

    private void init(){
        this.initialize(this.getArguments().getString("key"), new YouTubePlayer.OnInitializedListener() {
            @Override
            public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
                player = youTubePlayer;

                if(!b){
                    youTubePlayer.cueVideo(getArguments().getString("url"));
                }else{
                    youTubePlayer.loadVideo(getArguments().getString("url"));
                }
            }

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

            }
        });
    }
}

我也实现了 onConfigurationChanged 并调用 player.play() 但它没有用

任何建议!

【问题讨论】:

    标签: android youtube youtube-api


    【解决方案1】:

    我找到了解决我的问题的方法!问题出在 FrameLayout

    我的初始代码

    <FrameLayout
            android:id="@+id/homePageFrameLayoutVideo"
            android:layout_width="match_parent"
            android:layout_height="300dp"
            />
    

    以及工作代码

    <FrameLayout
            android:id="@+id/homePageFrameLayoutVideo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
    

    【讨论】:

      【解决方案2】:

      在 AndroidManifest.xml 中我的活动是这样的之前

      <activity android:name=".activity.FullVideoScreenActivity"/>
      

      然后我在里面加了一行代码,

      <activity android:name=".activity.FullVideoScreenActivity"
              android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"/>
      

      它奏效了。希望此解决方案对其他人有所帮助。谢谢

      【讨论】:

        【解决方案3】:

        我建议检查 Android Monitor 日志控制台。它可能说明了另一个视图覆盖的 youtube 视频视图。在详细信息中,它提供了确切的详细信息(视图类型、ID 等),哪个视图通过覆盖视频区域来中断 youtube 视频。

        【讨论】:

          【解决方案4】:

          你应该使用

          youTubePlayerFragment.setRetainInstance(true);
          

          YouTubePlayerFragment 初始化后的 onCreate 方法中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-12-26
            • 2015-11-26
            • 2021-04-30
            • 1970-01-01
            • 2013-12-21
            • 2016-12-06
            • 2011-11-23
            相关资源
            最近更新 更多