使用YouTubePlayerSupportFragment时,YouTube视频在1秒钟后停止播放

Ton*_*ito 3 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);
                    }
                }
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我将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" />
Run Code Online (Sandbox Code Playgroud)

我正在使用YouTube API的1.2.2

我在Android 5.1上运行,并尝试了最新和较旧的youtube播放器。我已经了解到其他人可能会发生这种情况,并指出这是一个API问题,但我不确定。我愿意尝试的任何想法。

小智 5

我遇到了同样的问题,几个小时后终于找到了解决方案。问题在于视图可能不在您要放置此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>
Run Code Online (Sandbox Code Playgroud)

我不太了解为什么您无法在所需的地方调用youtubePlayerFragment。也许是为了避免某些程序员隐藏视频的某些部分(例如,在不遵循使用条件的情况下不合法的视图下人为地显示声音)...