Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android YouTubeplayer方向改变时出现碎片黑屏_Android_Video_Youtube Api_Android Youtube Api - Fatal编程技术网

Android YouTubeplayer方向改变时出现碎片黑屏

Android YouTubeplayer方向改变时出现碎片黑屏,android,video,youtube-api,android-youtube-api,Android,Video,Youtube Api,Android Youtube Api,我正试图继续播放YouTubePlayerFragment的方向变化 代码如下所示: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) { FrameLayout frameLayout = new FrameLayout(getActivity()); populateViewForOrientation(inflater, frameL

我正试图继续播放YouTubePlayerFragment的方向变化

代码如下所示:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
    FrameLayout frameLayout = new FrameLayout(getActivity());
    populateViewForOrientation(inflater, frameLayout);
    return frameLayout;
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    LayoutInflater inflater = LayoutInflater.from(getActivity());
    populateViewForOrientation(inflater, (ViewGroup) getView());
}

private void populateViewForOrientation(LayoutInflater inflater, ViewGroup viewGroup) {
    viewGroup.removeAllViewsInLayout();
    rootView = inflater.inflate(getLayoutResId(), viewGroup);
    ButterKnife.bind(this, rootView);

    if (frYTube != null) {
       FragmentTransaction transaction = getFragmentManager().beginTransaction();
       transaction.replace(R.id.frame, frYTube);
       transaction.commitAllowingStateLoss();
    }
}
片段被替换(我看到上面的文字),音乐正在播放,而不是视频-黑屏。 我该怎么处理呢?有可能把录像带拿回来吗?顺便说一句,如果旋转后的下一个视频是oppenes-视频出现。 我试着为当前视频调用
暂停
播放
,但没有效果。 我没有尝试使用
YouTubePlayerView
,因为我使用
moxy
,所以我需要处理片段

upd

它看起来像是在创建自定义视图时使用
YouTubePlayerFragment
,使其具有更稳定的行为(然后删除addview)。但黑屏问题仍然存在

在这种情况下,可以通过以下方式恢复视频:

 mYouTubePlayer.loadVideo(url);
 ...
 public void onLoaded(String s) {
  mYouTubePlayer.seekToMillis(mills);
但是重新加载视频没有任何意义,我试图避免这种情况-延迟出现基于此,请确保在还原过程中调用
onCreate()
而不是显式创建时,您正在初始化
onCreate()
中的
YouTubePlayerView
。在这里,包含片段的活动不需要扩展任何特殊的基类


您还可以检查此相关线程:

快速简便的解决方案是将以下内容添加到您的清单中的视频活动中:

android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
我有一个应用程序,用它来制作视频,效果很好。在方向改变时,所有内容都正确地进行了布局,活动和片段实例不会被拆下,从而可以无缝地继续播放

如果希望在保留片段实例的同时拆除/重新创建活动,请重新阅读setRetainInstance()的文档

要使其正常工作,您需要注意一些细微差别:


使用此功能,它将在方向更改后继续播放片段

我找到的唯一有效方法是手动处理屏幕方向:

1) 添加到您的活动中:

android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
2) 在活动课上:

@Override
public void onConfigurationChanged(Configuration newConfig) {
   super.onConfigurationChanged(newConfig);
   someFunctionToHandleOrienttion();
}

你不应该夸大新的布局。只需删除并重新创建/添加所需的所有内容,除了
youtubeframe
,即可使land layout看起来像您想要的。这有点棘手和奇怪,但在其他情况下,你得到的是黑屏而不是视频

谢谢你的回答。我已经尝试了
setRetainInstance
configChanges
已经设置好)。但结果是一样的:我可以听声音,但视频是黑色的,直到我调用
loadVideo
查看下一项。谢谢你的回答,我会查看教程。嗯,我没有在
onCreate
中创建它,因为我需要通过用户操作在片段上创建视频帧。我需要检查这是否是原因。即使我面临同样的问题,你有解决方案吗。你好@pooja。我目前的解决方案是不膨胀新的布局。我手动处理方向更改,删除和添加以编程方式更改位置的组件,而不接触youtube框架:)