8

YouTubePlayerSupportFragment を使用して、YouTube 動画をアプリに埋め込みます。埋め込むと、非常にうまく機能し、ビデオが再生され、すべてが素晴らしい.

フルスクリーン ボタンをタップすると、埋め込まれた YouTube ビデオ フラグメントが表示されます。最初に奇妙なことが起こります。それは、既存のエンクロージング アクティビティの新しいコピーをインスタンス化します...そして、その理由がわかりません。

ViewPager にいくつかのフラグメントを表示する 1 つのアクティビティ、RootActivity があります。現在扱っているフラグメントは、EasyModePurchaseFragment と呼ばれます。その EMPF には、YouTubePlayerSupportFragment がそのレイアウト xml に埋め込まれています。

<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 も破壊して再作成します。ウェブ URL を開くインテントを起動しても、アクティビティが破棄されて再作成されません。YouTubeStandalonePlayer インテントを起動すると、アクティビティが破棄されて再作成されるのはなぜですか?

4

2 に答える 2