【问题标题】:Android: When playing an youtube video in full screen activity is realoadedAndroid:在全屏活动中播放 youtube 视频时重新加载
【发布时间】:2015-10-05 12:33:39
【问题描述】:

我的活动中有一个 YouTube 播放器。但我在使用视频的全屏选项时遇到了一些问题。

当我第一次开始活动时,youtubeview 会正确显示和初始化,我可以看到视频播放它并进入全屏模式。但是当我按下按钮退出全屏模式/旋转我的手机时,整个活动正在重新加载,并且活动中缺少 youtubeview。这是我初始化 youtube 播放器/视图的方法:

   try {
        final YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);

        youTubeView.initialize("KEY", new YouTubePlayer.OnInitializedListener() {
            @Override
            public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean VidBool) {
                if(ad==null || ad.getVideo_urls() == null)
                    return;

                if (!VidBool)
                {
                    try {
                        if (ad.getVideo_urls() != null && ad.getVideo_urls().length() > 0) {
                            String url = ad.getVideo_urls().getString(0);
                            if (url.contains("youtube")){                                    
                                VideoID = "kQsN-pvokrw";
                                youTubeView.setVisibility(View.VISIBLE);
                                MyYouTubePlayer = youTubePlayer;
                                MyYouTubePlayer.cueVideo(VideoID);
                                MyYouTubePlayer.setOnFullscreenListener(new YouTubePlayer.OnFullscreenListener() {
                                    @Override
                                    public void onFullscreen(boolean b) {
                                        fullScreen = true;
                                    }
                                });
                            }
                        } else {
                            youTubeView.setVisibility(View.GONE);
                            Log.i(Constants.getTag(), "Video not found");
                            //Making sure the MyYouTubePlayer is null and if not is being released
                            if(MyYouTubePlayer != null)
                            {
                                MyYouTubePlayer.release();
                                MyYouTubePlayer.setFullscreenControlFlags(-1);
                            }
                        }
                    }
                    catch (JSONException e) {
                        youTubePlayer.release();
                        e.printStackTrace();
                    }
                }

            }

            @Override
            public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
                youTubeView.removeAllViews();
            }
        });



        //Catching A dead object exception
    } catch(Exception e){
        e.printStackTrace();
        Log.e("Youtube", "error initializing youtube");
    }

【问题讨论】:

    标签: android video youtube android-fullscreen


    【解决方案1】:

    如果您不希望在方向更改后重新创建 Activty,则必须在 Manifest 中添加下一行(在活动标签内):

    android:configChanges="orientation|screenSize"
    

    但是,如果您想支持方向更改,则应该覆盖该 Activity 的 onConfigurationChanged 方法。

    @Override
    public void onConfigurationChanged(Configuration newConfig) {}
    

    延伸阅读:http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange

    【讨论】:

      猜你喜欢
      • 2013-02-10
      • 2012-12-26
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 2018-09-02
      相关资源
      最近更新 更多