You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用使用android-youtube-player库出现VIDEO_NOT_PLAYABLE_IN_EMBEDDED_PLAYER错误的疑难问题求助

Android应用使用android-youtube-player库出现VIDEO_NOT_PLAYABLE_IN_EMBEDDED_PLAYER错误的疑难问题求助

各位大佬,我最近碰到一个超级头疼的问题,折腾了好久都没找到根源,想请大家帮忙支支招!

我用android-youtube-player库在Android应用里嵌入YouTube视频播放,但是部分用户会遇到这样的诡异情况:

  • 突然所有视频都报VIDEO_NOT_PLAYABLE_IN_EMBEDDED_PLAYER错误,不管视频的作者是谁、所在地区是什么,统统无法播放
  • 这个错误是持续性的:重启APP、甚至重启设备都没用,但换一台设备打开我的APP就能正常播放;而且过个几天,这个问题又会自动消失,视频又能正常播放了
  • 同一个有问题的设备上,这个库的官方示例APP却能正常播放视频,只有我的APP不行;但如果把我的APP卸载重装,问题立刻就消失了
  • 每天大概有4-5个用户反馈这个问题,这些用户都没有滥用或刷量行为,甚至有人可能一周都没打开过APP,再次打开就遇到了这个错误

以下是我初始化播放器的核心代码:

class PlayerYoutube : YouTubePlayerListener {
    override fun initPlayer(
        activity: ComponentActivity,
        container: ViewGroup,
        cClanguage: String?
    ) {
        youTubePlayerView = YouTubePlayerView(activity)
        youTubePlayerView!!.enableAutomaticInitialization = false
        container.addView(youTubePlayerView)

        val optionsBuilder = IFramePlayerOptions.Builder()
            .controls(0)//web UI is not visible.
            .rel(0)//related videos will come from the same channel as the video that was just played
            .ivLoadPolicy(3)//the player won't show annotations.
            .fullscreen(0)//disable full screen button

        if (!cClanguage.isNullOrEmpty()) {
            optionsBuilder.ccLoadPolicy(1)//the player will show captions
            optionsBuilder.langPref(cClanguage)//captions shown with specific language
        } else {
            optionsBuilder.ccLoadPolicy(0)
        }

        youTubePlayerView!!.initialize(
            youTubePlayerListener = this,
            handleNetworkEvents = true,
            playerOptions = optionsBuilder.build()
        )
        youTubePlayerView!!.inflateCustomPlayerUi(R.layout.tv_player_ui)
    }

    override fun onReady(youTubePlayer: YouTubePlayer) {
        player = youTubePlayer
        tracker = YouTubePlayerTracker()
        player!!.loadVideo("videoId", 0f)
        player!!.addListener(tracker!!)
    }
}

我自己琢磨了可能的几个方向,但不确定:

  1. 会不会是YouTube的嵌入式播放器针对我的APP包名/签名触发了临时限制?毕竟卸载重装就好,可能和缓存的会话信息有关?
  2. 是不是我初始化时的IFramePlayerOptions配置有问题?对比示例APP的配置,好像差异不大,但会不会某些参数(比如隐藏UI、关闭全屏)触发了检测?
  3. 本地缓存的问题?比如播放器存储了某些异常状态,卸载重装清除了缓存就恢复了?

有没有大佬遇到过类似的问题,或者能给我一些排查的方向?万分感谢!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 09:14:33