当我在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((,但它不起的作用
有什么建议吗!
我找到了解决问题的方法!问题出现在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"
/>
之前我的活动在AndroidManifest.xml 中是这样的
<activity android:name=".activity.FullVideoScreenActivity"/>
然后我在里面添加了单行代码,
<activity android:name=".activity.FullVideoScreenActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"/>
它奏效了。希望这个解决方案能帮助其他人。感谢
我建议查看Android Monitor日志控制台。它可能说明了youtube视频视图被另一个视图覆盖的情况。在细节上,它给出了确切的细节(视图类型、id等(,哪个视图通过覆盖视频区域来中断youtube视频。
您应该使用
youTubePlayerFragment.setRetainInstance(true);
在初始化YouTubePlayerFragment
之后,在您的onCreate
方法中。