回答

2

我終於找到了如何在對話框中播放嵌入的youtube視頻。

只需爲您的對話框創建自定義佈局,並在擴展DialogsFragment的類中對其進行膨脹。

在此自定義佈局中,您添加了一個framelayout,它將成爲youtubefragment容器。 不要忘記讓你的Dialog實現YouTubePlayer界面,並且幾乎完成。

最後的竅門使用getChildFragmentManager而不是supportFragmentManager作爲在您的容器中添加youtube播放器片段的事務。

下面是一些代碼,爲您的對話框類:

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!"); 
} 

爲YouTube播放器參考可以使用完全實現自己的控制研究(播放/暫停等等等等)

希望它會幫助一些身體。

Regards,

1

至少不是通過延伸YouTubeBaseActivity,但通常根本沒有必要。推薦的方法是讓您的活動延伸AppCompatActivity並在您的活動中使用YouTubePlayerSupportFragment

直從docs

包含YouTubePlayerView片段。使用這個片段是 是播放YouTube視頻的首選方式,因爲您的活動確實不需要擴展該庫提供的活動,如直接使用YouTubePlayerView那樣, 就是這種情況。

在對話框中播放YouTube視頻可能會很棘手或根本不可能。最好的方法是使用帶有對話框主題/透明背景的Activity來模仿對話框的外觀(同時還是一項活動)。

相關問題