Youtube播放器在旋转时停止

时间:2015-08-08 13:28:30

标签: android youtube youtube-api

当我在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()但它没有用

任何建议!

4 个答案:

答案 0 :(得分:0)

我发现解决方案是我的问题!问题出在 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"
        />

答案 1 :(得分:0)

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

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

然后我在其中添加了单行代码,

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

它有效。希望这个解决方案能帮助别人。感谢

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您应该使用

youTubePlayerFragment.setRetainInstance(true);
初始化onCreate后,在您的YouTubePlayerFragment方法中