【问题标题】:Android use Youtube player video and appcompatAndroid 使用 Youtube player video 和 appcompat
【发布时间】:2016-10-11 08:11:28
【问题描述】:

我想知道是否有一种方法可以同时使用 YouTubeBaseActivity 并获得 AppCompatActvity 的好处。

主要思想是在 dialogFragment 中播放 youtube 视频。

有什么想法吗?

【问题讨论】:

    标签: android youtube android-appcompat android-dialogfragment android-youtube-api


    【解决方案1】:

    我终于找到了如何在对话框中播放嵌入的 youtube 视频。

    只需要为您的对话框创建一个自定义布局,然后在扩展 DialogsFragment 的类中对其进行扩展。

    在这个自定义布局中,您添加一个框架布局,它将成为一个 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 播放器的参考可以用来实现您自己的控制(播放/暂停等)

    希望对身体有所帮助。

    问候,

    【讨论】:

      【解决方案2】:

      至少不是通过扩展YouTubeBaseActivity,但通常这根本没有必要。推荐的方法是让您的 Activity 扩展 AppCompatActivity 并在您的 Activity 中使用 YouTubePlayerSupportFragment

      直接来自docs

      包含 YouTubePlayerView 的片段。使用这个片段是 播放 YouTube 视频的首选方式,因为您的活动确实如此 不需要扩展图书馆提供的活动,就像这种情况一样 直接使用 YouTubePlayerView`。

      在对话框中播放 YouTube 视频可能很棘手,或者根本不可能。最好的方法是使用带有对话框主题/透明背景的 Activity 来模仿对话框的外观(同时仍然是一个 Activity)。

      【讨论】:

        猜你喜欢
        • 2021-08-11
        • 2014-08-01
        • 1970-01-01
        • 2013-01-03
        • 2015-12-31
        • 2014-02-02
        • 2018-02-17
        • 2022-08-20
        相关资源
        最近更新 更多