1-2秒后暂停youtube视频

use*_*002 7 youtube android

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

我创建了Video Fragment和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;
    }

}
Run Code Online (Sandbox Code Playgroud)

用于创建Youtobe视频的功能

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;
}
Run Code Online (Sandbox Code Playgroud)

Ren*_*ard 9

根据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应用程序.


小智 0

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