Android:当以全屏模式播放YouTube视频时,您可以实时播放
问题描述:
我在您的活动中拥有一台管乐器。但是,我在使用视频的全屏选项时遇到了一些问题。Android:当以全屏模式播放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");
}
答
如果你不希望的方向更改后重新创建你的Activty做,你必须在下一行添加到您的清单(活动标签中):
android:configChanges="orientation|screenSize"
但你应该重写onConfigurationChanged该活动的方法,如果你想支持的方向变化。
@Override
public void onConfigurationChanged(Configuration newConfig) {}
延伸阅读:http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange