【问题标题】:Pausing youtube video after 1-2 seconds1-2 秒后暂停 youtube 视频
【发布时间】:2014-04-11 14:15:18
【问题描述】:

我正在使用 Youtube Player api 在我的应用程序中播放 youtube 视频。视频开始播放并在 1-2 秒后暂停

我创建了 Video Fragment 和 ViewGroup。随后我创建了一些youtobe videoview。

视频片段

public static final class VideoFragment extends YouTubePlayerSupportFragment implements
        OnInitializedListener
{

    private YouTubePlayer player;
    private String videoId;

    public static VideoFragment newInstance()
    {
        return new VideoFragment();
    }

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        initialize(Constants.DEVELOPER_KEY, this);
    }

    @Override
    public void onDestroy()
    {
        if (player != null)
        {
            player.release();
        }
        super.onDestroy();
    }

    public void setVideoId(String videoId)
    {
        if (videoId != null && !videoId.equals(this.videoId))
        {
            this.videoId = videoId;
            if (player != null)
            {
                player.cueVideo(videoId);
            }
        }
    }

    public void pause()
    {
        if (player != null)
        {
            player.pause();
        }
    }

    @Override
    public void onInitializationSuccess(Provider provider, YouTubePlayer player,
            boolean restored)
    {
        this.player = player;
        if (!restored && videoId != null)
        {
            player.cueVideo(videoId);
        }
    }

    @Override
    public void onInitializationFailure(Provider provider, YouTubeInitializationResult result)
    {
        this.player = null;
    }

}

创建Youtobe videoview的功能

private ViewGroup createYouTubePlayer(final VideoData data, final FrameLayout youTubePlayer)
{

    youTubePlayer.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View v)
        {
            FragmentManager fm = mActivity.getSupportFragmentManager();

            if (v.getId() == mCurrentYouTubePlayer)
            {
                return;
            }

            VideoFragment fragment = (VideoFragment) fm.findFragmentById(mCurrentYouTubePlayer);
            if (fragment == null)
            {
                fragment = VideoFragment.newInstance();
                fragment.setVideoId(data.srcPath);

                fm.beginTransaction().add(youTubePlayer.getId(), fragment).commit();
                mCurrentYouTubePlayer = v.getId();
            }
            else
            {
                fm.beginTransaction().remove(fragment).commit();

                fragment = VideoFragment.newInstance();
                fragment.setVideoId(data.srcPath);
                fm.beginTransaction().add(youTubePlayer.getId(), fragment).commit();
                mCurrentYouTubePlayer = v.getId();
            }
        }
    });



    return youTubePlayer;
}

【问题讨论】:

  • 问题是……?
  • 要在 2 秒后暂停吗?还是暂停是实际问题,而您不想要它?
  • 暂停才是真正的问题
  • 是的,我遇到了同样的问题,如果您遇到了,请给我解决方案

标签: android youtube


【解决方案1】:

不能按照 Google 的规定在播放器上方添加按钮作为叠加层,否则播放器将停止:

https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayerView

请注意,在播放视频时,此视图的最小尺寸为 200x110 dp。如果您将视图缩小,视频将 自动停止播放。此外,不允许覆盖 在播放视频时与其他视图一起观看。

此视图不支持填充。为了达到同样的效果,换行 另一个 ViewGroup 中的视图或为其设置边距。

YouTubePlayer 也不支持填充。

要在视频上叠加您的视图,我建议您使用 ExoPlayer, 它不是 android sdk 的一部分,但被 google 推荐并包含在 android 开发者文档中:

http://google.github.io/ExoPlayer/

Exoplayer 允许您流式传输任何类型的视频,而不仅仅是 Youtube 视频。

值得一提的是,在 youtube 应用程序中使用了 Exoplayer。

【讨论】:

    【解决方案2】:

    问题可能是因为 com.google.android.youtube.player.YouTubePlayerView 上方有一些对象或视频具有填充属性

    【讨论】:

      【解决方案3】:

      如果有人使用 Youtube 片段,则在事务中使用替换而不是添加。

      YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance();

          FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
      
          transaction.replace(R.id.youtube_frame, youTubePlayerFragment).commit();
      

      【讨论】:

        猜你喜欢
        • 2014-08-02
        • 2012-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-11
        • 2012-11-05
        • 1970-01-01
        相关资源
        最近更新 更多