我在Android中的YouTubePlayer可见性方面存在一些问题?

时间:2015-09-28 10:40:01

标签: android youtube youtube-api android-youtube-api

我在android中遇到youtube播放器视图的问题。

它的表现出现错误,当它播放一段时间它的播放然后突然停止。 并显示吼叫错误。

YouTube video playback stopped because the player's view is not visible.
The view com.android.internal.policy.impl.PhoneWindow$DecorView
{36d050c2 I.E..... R.....ID 0,0-540,960} has visibility "INVISIBLE".

告诉我该怎么办这个错误。??

我的活动代码在这里。

youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtube_player);
youTubePlayerView.initialize(GOOGLE_API_KEY, this);


@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider,
        YouTubePlayer youTubePlayer, boolean wasRestored) {
    myYouTubePlayer = youTubePlayer;
    // Change play style
    youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
    youTubePlayer
            .addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI);
    youTubePlayer.setPlayerStateChangeListener(this);
    youTubePlayer.setPlaybackEventListener(this);
    youTubePlayer.loadVideo("wKJ9KzGQq0w");
}

@Override
public void onInitializationFailure(YouTubePlayer.Provider provider,
        YouTubeInitializationResult errorReason) {
    if (errorReason.isUserRecoverableError()) {
        errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
    } else {
        String errorMessage = String.format(
                "There was an error initializing the YouTubePlayer (%1$s)",
                errorReason.toString());
        Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
    }
}

我的XML文件代码在这里。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_FullScreen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000" >

<com.google.android.youtube.player.YouTubePlayerView
    android:id="@+id/youtube_player"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/rl_CurrentVideoDetails"
    android:layout_below="@+id/rl_Heading"
    android:layout_toStartOf="@+id/rl_ChannelChange"
    android:background="#000" />

<RelativeLayout
    android:id="@+id/rl_Heading"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="12dp"
        android:contentDescription="@null"
        android:padding="8dp" />
</RelativeLayout>

<RelativeLayout
    android:id="@+id/rl_ChannelChange"
    android:layout_width="50dp"
    android:layout_height="match_parent"
    android:layout_alignParentEnd="true"
    android:background="@color/transparent_background_black"
    android:gravity="center_horizontal" >

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_above="@+id/ll_ChNo"
        android:layout_marginBottom="16dp"
        android:contentDescription="@null"
        android:padding="8dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:orientation="vertical" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@null"
            android:gravity="center"
            android:padding="4dp"
            android:text="Ch."
            android:textSize="16sp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@null"
            android:gravity="center"
            android:padding="4dp"
            android:text="123"
            android:textSize="16sp" />
    </LinearLayout>

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_below="@+id/ll_ChNo"
        android:layout_marginTop="16dp"
        android:contentDescription="@null"
        android:padding="8dp"/>
</RelativeLayout>

<RelativeLayout
    android:id="@+id/rl_CurrentVideoDetails"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerVertical="true"
    android:background="@color/transparent_background_black"
    android:paddingStart="12dp" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="6dp"
        android:singleLine="true"
        android:textStyle="bold" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tv_CurrentVideoName"
        android:orientation="horizontal"
        android:padding="6dp" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="marquee"
            android:fadingEdge="horizontal"
            android:marqueeRepeatLimit="marquee_forever"
            android:singleLine="true"
            android:textAllCaps="true"
            android:textStyle="bold" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="| Ch. "
            android:textStyle="bold" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="4dp"
            android:singleLine="true"
            android:textAllCaps="true" />
    </LinearLayout>

    <ImageView
        android:id="@+id/iv_NormalScreen"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:contentDescription="@null"
        android:padding="10dp" />
</RelativeLayout>

3 个答案:

答案 0 :(得分:1)

我昨晚在我的应用上遇到了同样的问题,并最终找到了解决方案(至少对我而言)。我的应用程序似乎总是存在问题,我不小心多次向YoutubePlayerActivity发出相同的意图。

以前,我自己并没有注意到这一点 - 但是最近的Youtube更新必须增加限制或改变它的工作方式,因为我得到了这个错误。

我查看了我的代码,发现当我添加片段时,它会重新调用每个片段的onCreateView。添加了所有三个片段的含义,我最终称之为三次。

希望这有帮助。

答案 1 :(得分:1)

您可以查看您的Youtube应用程序是否已于去年9月或之后更新? 似乎Youtube App中存在一个错误,在使用Youtube API时会导致此异常错误:

https://code.google.com/p/gdata-issues/issues/detail?id=7586

您可以轻松检查此错误是否由Youtube App引起,删除Youtube App更新并测试您的应用。您可以移除此应用更新转到设置&gt;一般&gt;应用&gt; Youtube并单击“卸载更新”按钮。

对我来说,这就是我的应用youtube视频效果不佳的原因。当我卸载更新我的应用程序工作,当我重新安装更新我的应用程序再次崩溃。所以,我认为唯一的解决方案是等待新的更新:(

希望这有帮助!

答案 2 :(得分:0)

  

YouTube视频播放已停止,因为播放器的视图不是   可见。

任何内容都不应与YouTubePlayerView 重叠(根据Google的政策要求)。这意味着您需要考虑层次结构中所有视图的z-index和/或重叠。

在您的情况下, XML文件中元素的顺序决定了z-index ,并且 match_parent 布局与YouTubePlayerView重叠:您需要将YouTubePlayerView置于前面,只需将其作为布局中的最后一项移动:

<RelativeLayout
    android:id="@+id/rl_Heading"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="12dp"
        android:contentDescription="@null"
        android:padding="8dp" />
</RelativeLayout>

<RelativeLayout
    android:id="@+id/rl_ChannelChange"
    android:layout_width="50dp"
    android:layout_height="match_parent"
    android:layout_alignParentEnd="true"
    android:background="@color/transparent_background_black"
    android:gravity="center_horizontal" >

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_above="@+id/ll_ChNo"
        android:layout_marginBottom="16dp"
        android:contentDescription="@null"
        android:padding="8dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:orientation="vertical" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@null"
            android:gravity="center"
            android:padding="4dp"
            android:text="Ch."
            android:textSize="16sp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@null"
            android:gravity="center"
            android:padding="4dp"
            android:text="123"
            android:textSize="16sp" />
    </LinearLayout>

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_below="@+id/ll_ChNo"
        android:layout_marginTop="16dp"
        android:contentDescription="@null"
        android:padding="8dp"/>
</RelativeLayout>

<RelativeLayout
    android:id="@+id/rl_CurrentVideoDetails"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerVertical="true"
    android:background="@color/transparent_background_black"
    android:paddingStart="12dp" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="6dp"
        android:singleLine="true"
        android:textStyle="bold" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tv_CurrentVideoName"
        android:orientation="horizontal"
        android:padding="6dp" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="marquee"
            android:fadingEdge="horizontal"
            android:marqueeRepeatLimit="marquee_forever"
            android:singleLine="true"
            android:textAllCaps="true"
            android:textStyle="bold" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="| Ch. "
            android:textStyle="bold" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="4dp"
            android:singleLine="true"
            android:textAllCaps="true" />
    </LinearLayout>

    <ImageView
        android:id="@+id/iv_NormalScreen"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:contentDescription="@null"
        android:padding="10dp" />
</RelativeLayout>

<com.google.android.youtube.player.YouTubePlayerView
    android:id="@+id/youtube_player"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/rl_CurrentVideoDetails"
    android:layout_below="@+id/rl_Heading"
    android:layout_toStartOf="@+id/rl_ChannelChange"
    android:background="#000" />