1-2秒后暂停youtube视频

时间:2014-04-11 14:15:19

标签: android youtube

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

我创建了视频片段和ViewGroup。随后我创建了一些youtobe视频。

VideoFragment

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 个答案:

答案 0 :(得分:8)

无法在Google指定的播放器上方添加按钮作为叠加层,否则播放器将停止播放:

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

  

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

     

此视图不支持填充。为了达到同样的效果,请换一下   另一个ViewGroup中的视图或给它边距。

YouTubePlayer也不支持填充。

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

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

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

还可以提到Exoplayer用于youtube应用程序。

答案 1 :(得分:0)

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