当我在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()但它没有用
任何建议!
答案 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
方法中。