Android上的Youtube API播放器每2秒自动暂停一次

时间:2015-08-26 23:11:31

标签: android youtube-api

我制作了一款使用YouTube API播放YouTube视频的应用。当我进入全屏模式时,我将播放器样式切换为CHROMELESS,因为我想创建自己的一组媒体控件。

我开发了一组手势,可以映射到不断变化的音量,亮度和寻求。发生这些更改时,会在视频上弹出一个进度条,向用户显示实时更改。我已将所有视图放在一个FrameLayout中,以便在播放器全屏时让进度条显示在屏幕上。

问题在于(在我添加音量控制功能之前),一进入全屏模式,视频就会自动暂停。我正在处理方向和screenSize自己更改。我注意到,在我个人制作的搜索栏弹出后,它会暂停大约2秒钟。

因此,为了进行测试,我通过不将播放器样式更改为CHROMELESS来改变我的代码,也就是说,我将其保留为DEFAULT。我也删除了我的搜索栏,现在视频工作正常;我可以毫无问题地改变亮度并播放视频。在另一个测试期间,我从代码中删除了youtubePlayer.pause()的所有实例,将搜索条保留在其中,然后更改回CHROMELESS。但问题又回来了 - 所以它必须与搜索栏有关。

然而,现在,我已经添加了音量控制功能,当我运行它时(即使我不是全屏),播放器在按下播放后几乎立即暂停,之后它根本不起作用。

任何人都可以帮助我吗?当我回到计算机时,我会添加一些代码。我非常感谢你的帮助。

7 个答案:

答案 0 :(得分:10)

以下原因是最常见的原因之一:

  1. UNAUTHORIZED_OVERLAY - 与youtube视图重叠的其他视图

  2. PLAYER_VIEW_TOO_SMALL - Youtube视图太小

  3. USER_DECLINED_RESTRICTED_CONTENT - 尝试播放受限内容

  4. BLOCKED_FOR_APP - 某些视频因应用而被屏蔽。

  5. 您可以在link

    详细了解这些问题和其他问题

答案 1 :(得分:1)

您无法覆盖YoutubePlayView 上应该干净的任何视图。 尝试以下

<com.google.android.youtube.player.YouTubePlayerView
    android:id="@+id/player_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

答案 2 :(得分:0)

我认为您的问题是由于您的控件覆盖了播放器。看看你的logcat进行验证。

如YouTubePlayerView JavaDoc中所述,“在播放视频时,不允许将[播放器]视图与其他视图叠加”。
看看这个问题:Views overlayed above YouTubePlayerFragment or YouTubePlayerView in the layout hierarchy cause playback to pause immediately

使用我构建的库Android-YouTube-Player可以轻松解决此问题。除了比官方API更稳定之外,这个库为您提供更多自由,例如。你可以将任何你想要的东西叠加到你的播放器上。

答案 3 :(得分:0)

请检查logcat以确定您的问题。

当我遇到问题时,那是因为UNAUTHORIZED_OVERLAY。

<RelativeLayout
        android:id="@+id/parent"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/scImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"/>
        <FrameLayout
            andriod:id"@+id/youtube_parent
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
</RelativeLayout>

imageview位于拥有youtube播放器的framelayout之下。我将它移到了顶部(最终,固定布局是上面的例子)并且它开始工作。(我尝试设置Zindex它没有帮助)。

答案 4 :(得分:0)

如果你想让youtube安卓播放器控件每隔两秒钟就显示一次。你必须真正专注于你的布局。

<com.google.android.youtube.player.YouTubePlayerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/youtube_view"
android:focusable="true"
android:layout_height="match_parent"
android:layout_width="match_parent" />

答案 5 :(得分:0)

就我而言,我在播放器活动中具有状态栏。只需以全屏样式设置积极性即可解决问题

答案 6 :(得分:0)

删除YouTube布局中的边距和边距

问题仅在于布局,YouTube播放器不允许在其上方停留任何视图,既看不见也不透明。

为了使它在您的设备中可见,请在开发人员选项中启用布局边界。 (使用填充和边距警告)

OR

使用以下代码。我希望它能正常工作

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);