8

我正在使用 YouTubePlayerSupportFragment 在我的应用中嵌入 YouTube 视频。嵌入时效果很好,视频播放,一切都很棒。

当我点击嵌入的 YouTube 视频片段的全屏按钮时,第一个奇怪的事情发生了:它实例化了现有封闭 Activity 的新副本......我不知道为什么。

我有一个 Activity,RootActivity,它在 ViewPager 中显示几个片段。我目前正在处理的片段称为 EasyModePurchaseFragment。该 EMPF 在其布局 xml 中嵌入了 YouTubePlayerSupportFragment:

<fragment
    android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
    android:id="@+id/youtube_fragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
/>

当我点击 YouTubePlayerSupportFragment 上的全屏按钮时,会实例化一个全新的 RootActivity。这是为什么?

它给我带来了一些问题,因为它没有以正确的方式完全创建,这意味着它会导致崩溃......这不好。

编辑:

我还尝试拦截 onFullScreen() 事件,而不是调整视图大小,我只是尝试使用他们提供的意图启动一个独立的 YouTube 播放器:

Intent intent = YouTubeStandalonePlayer.createVideoIntent(getActivity(), myDeveloperKey, videoId);
getActivity().startActivity(intent);

奇怪的是,这也破坏并重新创建了我的 RootActivity。如果我启动打开 Web URL 的意图,我的活动不会被破坏和重新创建,为什么当我启动 YouTubeStandalonePlayer 意图时它会被破坏和重新创建?

4

2 回答 2

2

添加到包含 YouTubePlayerSupportFragment 这个属性的活动

android:configChanges="screenSize|orientation|keyboardHidden"
于 2015-10-27T19:45:58.350 回答
0

也许这会有所帮助,我非常努力地找到了解决您的具体问题的方法,但没有任何运气。如果不发布更多代码,很难确切地看到您的应用程序中设置的 YouTube 播放器。

https://github.com/youtube/yt-android-player/blob/master/src/com/examples/youtubeapidemo/FullscreenDemoActivity.java

于 2015-05-11T16:35:41.413 回答