使用YouTubePlayerSupportFragment时,Youtube视频会在1秒后停止播放

时间:2016-01-03 21:31:10

标签: android-fragments youtube-data-api

我正在使用YouTubePlayerSupportFragment并在一秒钟后停止播放。

如果我移动滑块,它会再次开始显示电影图像和声音,但在不到一秒后再次停止。它几乎看起来好像电影不是流媒体和缓冲,但视图显示电影控件和图像。

我使用默认视频模式,这是我的片段类:

public class PlayerYouTubeFrag extends YouTubePlayerSupportFragment {

    String developerKey = "dev_key";
    private YouTubePlayer activePlayer;

    public static PlayerYouTubeFrag newInstance(String url) {

        PlayerYouTubeFrag playerYouTubeFrag = new PlayerYouTubeFrag();

        Bundle bundle = new Bundle();
        bundle.putString("url", url);

        playerYouTubeFrag.setArguments(bundle);
        playerYouTubeFrag.init();

        return playerYouTubeFrag;
    }

    private void init() {

        initialize(developerKey, new OnInitializedListener() {

            @Override
            public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) {
                System.out.println("PlyerYouTubeFrag initialization failure");
            }

            @Override
            public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
                activePlayer = player;
                if (getArguments().getString("url") != null) {
                    if (wasRestored) {
                        activePlayer.play();
                    } else {                         

                      activePlayer.loadVideo(getArguments().getString("url"), 0);
                    }
                }
            }
        });
    }
}

我正在使用viewpager获取其他片段,这是我在getItem()调用中的主要活动部分,我在其中创建片段并将其返回:

if(ft3 == null)   ft3 = PlayerYouTubeFrag.newInstance(video_id);

我的主要活动我使用这个xml

<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />

我正在使用youtube api的1.2.2

我在Android的5.1上运行并尝试过最新的YouTube设备。我已经读过这可能会发生在其他人身上,并且指出是一个API问题,但我不确定。 我愿意尝试的任何想法。

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,几个小时后我终于找到了解决方案。问题是视图可能不在您要放置此 youtubePlayerFragment 的布局的顶部。

这就是视频在1秒后被切断的原因。要解决此问题,您需要确保要添加 youtubeFragment 的位置是布局的顶部。

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.96"
        android:paddingTop="5dp"
        android:id="@+id/youtubeFragment">

</FrameLayout>

我真的不明白为什么你不能在你想要的地方调用 youtubePlayerFragment 。也许是为了避免一些程序员隐藏视频的某些部分(例如人工显示声音而没有根据使用条件不合法的视图)......

答案 1 :(得分:-3)

由于视图与youtubePlayerFragment重叠,因此您无法使用youtubePlayerView,Youtube文档建议您使用其他方法覆盖视图。

请按照本指南中ActionBarDemoActivity

的步骤操作

https://github.com/youtube/yt-android-player