ответ

2

Наконец-то я нашел, как играть в встроенное видео youtube в диалоговом окне.

Просто нужно создать собственный макет для своего диалога и раздуть его в классе, который расширяет DialogsFragment.

В этом настраиваемом макете вы добавляете рамку, которая станет контейнером для youtubefragment. Не забудьте сделать свой диалог с интерфейсами YouTubePlayer, и это почти сделано.

Заключительный трюк использует getChildFragmentManager вместо поддержкиFragmentManager для транзакции, которая добавляет фрагмент плеера 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!"); 
} 

Keeping игрока юность в качестве ссылки можно использовать в полной мере реализовать свой собственный проверочные (воспроизведение/пауза и т.д. и т.д. и т.п.)

Надежда это поможет некоторым организмам.

С уважением,

1

По крайней мере, не расширяя YouTubeBaseActivity, но обычно этого не требуется. Рекомендуемый способ - позволить вашей деятельности продлить AppCompatActivity и использовать в вашей деятельности YouTubePlayerSupportFragment.

Прямо из docs:

Фрагмент, который содержит YouTubePlayerView. Использование этого фрагмента - - предпочтительный способ воспроизведения видео на YouTube, потому что ваша активность делает не нужно расширять деятельность, предоставляемую библиотекой, как в случае с с использованием непосредственно на YouTubePlayerView`.

Воспроизведение видео на YouTube в диалоговом окне может быть сложным или вообще невозможным. Лучшим способом было бы использовать Activity с диалоговой темой/прозрачным фоном, чтобы имитировать внешний вид диалогового окна (при этом все еще являлось активностью).