答えて

2

最後に、埋め込まれたYouTube動画をダイアログで再生する方法を見つけました。

ダイアログのカスタムレイアウトを作成し、DialogsFragmentを拡張するクラスでそれを膨張させるだけです。

このカスタムレイアウトでは、youtubefragmentコンテナになるframelayoutを追加します。 DialogでYouTubePlayerインターフェイスを実装することを忘れないでください。ほとんど完了です。

最後のトリックでは、あなたのコンテナにyoutube playerフラグメントを追加するトランザクションのsupportFragmentManagerの代わりにgetChildFragmentManagerを使用します。ここで

は、あなたのダイアログクラスのためのいくつかのコードです:

public class AddMarkerFragment extends DialogFragment implements YouTubePlayer.OnInitializedListener{ 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    Log.d("ADDMARKERLIFECYCLE","ONCREATE"); 
    final View view = inflater.inflate(R.layout.fragment_add_marker, container, false); 

     prepareYoutubePlayer(view); 
} 

private void prepareYoutubePlayer(View view) { 
    youtubePlayerFragment = (YouTubePlayerSupportFragment) 
      getActivity().getSupportFragmentManager().findFragmentById(R.id.youtube_fragment); 
    if (youtubePlayerFragment == null) { 
     youtubePlayerFragment = YouTubePlayerSupportFragment.newInstance(); 
     getChildFragmentManager().beginTransaction().add(R.id.youtube_fragment, youtubePlayerFragment).commit(); 
    } 
    youtubePlayerFragment.initialize(YoutubeConnector.KEY, this); 
} 
@Override 
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean wasRestored) { 

    if (!wasRestored) { 
     youTubePlayer.loadVideo(footage.getYoutubeID()); 
     this.youtubePlayer=youTubePlayer; 
     /* youTubePlayer.setShowFullscreenButton(false); 
     youTubePlayer.*/ 
     youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.MINIMAL); 
    } 

} 

@Override 
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { 
    Log.e(CreateExperienceActivity.class.getSimpleName(), "Ruh Roh!"); 
} 

参照してユーチューブプレーヤーを維持する独自のcontroll実装するためにフルに活用することができ

がそれを願っています(遊びの/ etcなどなどを一時停止)いくつかの体を助けるでしょう。

よろしくお願いします。

1

少なくとも、YouTubeBaseActivityを拡張するのではなく、通常は必ずしも必要ではありません。あなたのアクティビティをAppCompatActivityに広げ、アクティビティにYouTubePlayerSupportFragmentを使用することをお勧めします。ストレートdocsから

YouTubePlayerViewを含む断片。このフラグメントを使用するのは です。あなたのアクティビティは、 の場合、YouTubePlayerViewを直接使用して のように、ライブラリによって提供されたアクティビティを拡張する必要はないため、YouTube動画を再生するのが好ましい方法です。

ダイアログでYouTube動画を再生することは難しいかもしれません。最も良い方法は、ダイアログの外観を模倣するために(まだアクティビティである間に)ダイアログテーマ/透明な背景を持つアクティビティを使用することです。

関連する問題