YouTubeAndroidPlayerAPI 无法播放某些视频

2024-04-24

-- 更新 09/05/2016 17:10 -- 问题似乎与视频的发布日期有关......在4月的最后一周,我在YouTube上发布了很多视频,在4月27日19:00之前发布的视频可以正常工作,而在4月27日21:15之前发布的视频可以正常使用。当天就讨论了该问题,就好像 YouTube 在 4 月 27 日 19 日至 21 日期间对视频进行了一些更新或更改一样。我现在尝试加载新视频,这也有同样的问题。


我的 YouTubeAndroidPlayerAPI 有一个奇怪的问题。我使用 YouTubePlayerSupportFragment(但我对 YouTubePlayerFragment 也有同样的问题)在我的应用程序中播放视频,有些视频播放完美,其他视频显示错误“播放时出现问题。点击重试。 ”。

当这种情况发生在 Android 监视器中时,我看到 YouTube API 错误:

05-08 11:25:22.145 20521-20521/? E/YouTubeAndroidPlayerAPI: fmt.noneavailable
oae: Video not supported/available
at oab.a(SourceFile:212)
at nvl.a(SourceFile:383)
at nvl.a(SourceFile:706)
at nvr.a(SourceFile:1144
at nsn.onPostExecute(SourceFile:2102)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

如果我点击视频中的 YouTube 图标在 YouTube 应用中播放,则该视频在官方应用中可以正确播放。

如果视频已启用获利功能,则广告视频会正常显示,最后会显示错误。

I tried:

  • 使用 YouTubePlayerFragment 而不是 YouTubePlayerSupportFragment
  • 使用 Activity 而不是 AppCompatActivity
  • 将视频嵌入 HTML 页面,它可以正常工作
  • 停用获利功能,没有任何变化
  • 不同的按键,一种用于调试,一种用于发布

非常感谢您的帮助!


更新 11/05/2016这似乎是 YouTube 的一个错误;目前唯一可行的解​​决方法似乎是在 YouTube 官方应用程序中打开视频,或者用 WebView 替换播放器片段。标准 WebView 非常有限,不会显示使视频全屏显示的按钮。 您需要创建一个扩展 WebChromeClient 的类:

public class MyWebChromeClient extends WebChromeClient {

    FrameLayout.LayoutParams LayoutParameters = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);

    @Override
    public void onShowCustomView(View view, CustomViewCallback callback) {
        if (mCustomView != null) {
            callback.onCustomViewHidden();
            return;
        }
        mContentView = (LinearLayout) findViewById(R.id.scheda_video_activity);
        mContentView.setVisibility(View.GONE);
        mCustomViewContainer = new FrameLayout(SchedaVideoActivity.this);
        mCustomViewContainer.setLayoutParams(LayoutParameters);
        mCustomViewContainer.setBackgroundResource(android.R.color.black);
        view.setLayoutParams(LayoutParameters);
        mCustomViewContainer.addView(view);
        mCustomView = view;
        mCustomViewCallback = callback;
        mCustomViewContainer.setVisibility(View.VISIBLE);
        setContentView(mCustomViewContainer);
    }

    @Override
    public void onHideCustomView() {
        if (mCustomView == null) {
            return;
        } else {
            mCustomView.setVisibility(View.GONE);
            mCustomViewContainer.removeView(mCustomView);
            mCustomView = null;
            mCustomViewContainer.setVisibility(View.GONE);
            mCustomViewCallback.onCustomViewHidden();
            mContentView.setVisibility(View.VISIBLE);
            setContentView(mContentView);
        }
    }
}

然后初始化WebView:

WebView myWebView = (WebView)findViewById(R.id.webview);
MyWebChromeClient mWebChromeClient = new MyWebChromeClient();
myWebView.setWebChromeClient(mWebChromeClient);
myWebView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return false;
    }
});
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

最后,在WebView中加载视频:

myWebView.loadUrl("https://www.youtube.com/embed/"+youtube_id);

如果您想让 WebView 尺寸适应 YouTube 播放器,您可以执行以下操作:

Point size = new Point();
getWindowManager().getDefaultDisplay().getSize(size);
myWebView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int)Math.round(size.x/1.77)));

尝试将您的 YouTube 应用更新至版本 11.19.56。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

YouTubeAndroidPlayerAPI 无法播放某些视频 的相关文章

  • Android:在对话框中使用日期选择器和时间选择器

    我面临一个我不知道如何解决的问题 我有一个活动 当我单击链接到该活动的菜单的特定项目时 会显示一个对话框 用于添加项目 该项目有日期和时间 但我无法获得DatePicker and TimePicker在此对话框中 我还尝试将活动传递给对话
  • 自定义相机预览问题(拉伸)

    我的相机应用程序出现问题 我的应用程序有 1 CameraActivity class和 2 CameraPreview class CameraPreview实施一个surfaceView它是从哪里调用的CameraActivity以进行
  • android studio 和 netbeans 中输入扫描器和解析的不同行为

    我正在使用 NetBeans 测试基本代码 和 Android Studio 实际应用程序 读取相同的管道分隔文件 并得到不同的结果 这是有问题的代码 String URL http CalendarUTF8 Dec2016 txt try
  • 如何更改Android应用程序的页面?

    我是安卓新手 我已经设计了由许多页面组成的应用程序 任何人都有源代码或任何可以让我知道如何构建它的东西 例如 当我单击按钮时 我希望它将页面更改为下一页 谢谢你卡 运行通过第一个应用程序教程 https developer android
  • 如何使用字符串搜索将一种布局膨胀为另一种布局

    如何将两者都加粗xml来自带有 switch case 的搜索字符串的字符串 我想更改每个 xml 字符串textview此更改将在按钮单击时发生 String strfistsearch mylist get 7 get data4 if
  • Android-使用 ViewHolder 和 AsyncTask 加载联系人-缩略图问题

    我正在创建一个自定义联系人应用程序 我使用带有 ViewHolder 设计模式的 ArrayAdapter 进行优化 由于加载缩略图需要花费大量时间 因此我使用 AsyncTask 类来加载图像 用于第一组联系人我的屏幕上 图片加载得很好
  • Android模拟器收不到推送通知

    我在谷歌云上使用推送通知 但是由于某种原因我无法在模拟器上接收推送通知 然而 当我在真实设备上测试时 同一个应用程序确实会收到通知 有其他人遇到过这个问题或找到解决方案吗 模拟设备具有网络访问权限 并且与真实设备具有相同的 Android
  • Kotlin 中使用 Retrofit @PartMap 的多部分请求错误 (Android)

    如果我在 Java 中使用这段代码 那么它工作得很好 当我在 kotlin 中转换该代码时 出现错误 Logcat 08 20 23 46 51 003 3782 3782 com qkangaroo app W System err ja
  • 创建全球唯一的 Android 标识符

    说到Android唯一ID 相信大家都见过this https stackoverflow com questions 2785485 is there a unique android device id 但是我也试图提出一个解决方案来唯
  • 具有多个 orderBy 的 Android firebase 查询

    我想检索我的 firebase 数据库中所有类型为 福音 的数据 这是我的数据库 DatabaseReference infoRef FirebaseDatabase getInstance geReference child info i
  • 如何在没有 Google Play 服务的情况下设置 Android 模拟器

    一位客户要求我制作一个应用程序版本 以便在没有 Google Play 服务的设备上运行 有什么方法可以告诉 Android 模拟器在不使用 GPS 的情况下运行应用程序吗 然后我可以测试代码以确保它可以在客户端设备上运行 使用不包含 go
  • 尝试运行我的 Espresso 测试时 RecyclerViewMatcher 中出现 NullPointerException

    我想跑Espresso Testing on my Android project 第 1 步 找到我的RecyclerView 第 2 步 检查上的项目RecyclerView 第一步成功运行 但第二步应该检查recycler view项
  • 自定义 URL 方案不是 Outlook 中的链接 (iOS/Android)

    我们的应用程序可以使用自定义 URL 方案启动 例如myapp mainpage param 123 当它作为链接包含在网页中时 此功能有效 而且 在 iOS 上 它可以在平台附带的邮件客户端中运行 用户注册并安装该应用程序后 他会收到一封
  • 如何从 Android 应用程序调试共享库 [单独的项目]

    我正在开发一个 Android 应用程序并在项目中使用密集的 C 代码 首先 我将c 源代码放入项目中 并使用以下指南在Android应用程序中具有本机调试的NDK功能 http tools android com recent using
  • 如何修复Android模拟器中“无法连接到相机服务”异常

    当我在模拟器中运行 Android 应用程序时 出现无法连接到相机服务异常 我已经阅读了各种现有的帖子 但没有一个修复了这个问题 显然是 Camera open 调用失败了 我最终想让网络摄像头在模拟器中运行 正如许多 SO 帖子所讨论的那
  • 为并行的小型已知冻结进程创建匿名 AsyncTask 是一个好习惯吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 例如 您要做一些需要几秒钟的事情 并且不想冻结您的 UI 线程 对吗 您可以使用 AsyncTask 但您不想创建外部 或内部 类来解决小冻结问
  • Android 检测片段何时分离

    我可以轻松检测到Fragments附于Activity via Activity onAttachFragment 但我怎样才能检测到Activity那一些Fragment脱离活动了吗 没有Activity onDetachFragment
  • 旋转后,精灵和矩形位置在 Libgdx 中未对齐

    我有以下代码 其中紧密映射的精灵 矩形和多边形在 libgdx 中以相同角度旋转 旋转后矩形与精灵不对齐 虽然精灵在绘制时会旋转 但旋转后坐标和尺寸保持不变 矩形的情况并非如此 请参阅下面的代码和结果图 public void rotate
  • 在 RadioButton 旁边添加 EditText

    我有一个习惯DialogPreference我想在其中有一个子类RadioGroup与三个单选按钮 前两个是香草RadioButton带有标题的组件 但对于第三个我想放置一个EditText直接在它的右侧 这样当选择该按钮时我可以输入自定义
  • 如何在屏幕上拖动图像

    谁能帮助我如何为可以在屏幕上拖动的图像编写程序 你能给我一个示例代码吗 多谢 我怎样才能为它制作游戏得分 我将感谢您的回复 imageView setOnLongClickListener new OnLongClickListener p

随机推荐

  • 设置 AngularJS 日期过滤器格式以供所有对日期过滤器的引用使用?

    而不必为每次调用定义自定义格式date过滤器 有没有办法全局定义默认格式 除了 medium 我希望将格式设置在一个文件中 而不是在代码中的所有位置设置 日期格式可能最终会在将来发生更改 并且在一个文件中进行修改比在许多文件中进行更改要好得
  • 时间序列距离度量

    为了对一组时间序列进行聚类 我正在寻找一个智能距离度量 我尝试过一些众所周知的指标 但没有一个适合我的情况 ex Let s assume that my cluster algorithm extracts this three cent
  • 字典无法识别键类型

    在 Xcode beta 3 中 以下代码不再有效 func keyboardWasShown notification NSNotification var info notification userInfo keyboardSize
  • bxslider 在 IE9 中不工作

    我有一个 bxslider 插件在我为某人制作的网站上工作 它适用于除 IE9 之外的所有浏览器 也可能是 IE 的早期版本 但我必须测试它的是 9 我想知道我的代码哪里出了问题 我会提到它与scrolldeck视差插件一起运行 这是我的标
  • 在集群上运行时插入符号中发生错误

    我正在运行train函数于caret http cran r project org web packages caret index html在集群上通过doRedis http cran r project org web packag
  • 通过代码使 SHIFT+3 在 OSX 上生成 `#` 而不是 `£`

    在我的英国 MacBook Air 上 可以使用 OPT 3 键入 SHIFT 3 目前产生 如何重新接线以便 SHIFT 3 产生 这个问题的动机是https apple stackexchange com questions 15615
  • 关于特定国家/地区的mysql日期格式

    我使用MySQL函数DATE FORMAT table field d b Y 其中第一个参数是我的列 第二个参数是根据日期逻辑格式化列的模式 该函数的输出为英文 10 Feb 2014 我想将区域设置语言设置为fr FR这将输出这个正确的
  • 在全日历中显示图像作为背景

    我一直在寻找一些代码来使用图像作为 fullcalendar 中事件的背景 全日历 jQuery https fullcalendar io 但我所能找到的只是向所述事件添加图标的代码 我想做这样的事情 更新 2016 09 23 晚上 8
  • 如何将 python 脚本日志记录到在 Google Cloud VM 上运行的 Google stackdriver 日志记录中

    我正在使用 Google Cloud 虚拟机来运行在 cron 上安排的 python 脚本 我正在寻找某种方法来检查脚本日志并将我的脚本运行日志添加到 google stackdriver 日志记录中 无论如何 是否有将 python 脚
  • 应用程序恢复时如何处理推送通知?

    尝试使用处理推送通知推送插件 https github com phonegap build PushPlugin 以下是我的代码 onNotificationGCM function e switch e event case regis
  • 如何将OpenERP 5.0升级到6.0

    我安装了 OpenERP 5 0 其中包含一些自定义模块 我希望将其升级到 OpenERP 6 0 我对这种软件有一些经验 并且检查过OpenERP 遗憾的是 我没有 OpenERP 的实际经验 我喜欢寻求一些帮助以避免错误 在研究这个问题
  • 无法在 Flask 后端提取 React 前端上传的图像文件

    我正在尝试将图像文件 驻留在本地 从我的反应单页前端应用程序发送到我的烧瓶后端 我尝试过但不限于捕获我的内容类型并在前端指示 encType 的一些事情 尽管如此 post请求表明它是成功的 但是 当我记录 requests files r
  • 在python中将一些数组合并到单个数组/列表中

    如何转换这个数组 不同维度的numpy l array 0 08 array 0 56 0 01 0 46 array 0 60 0 07 0 03 array 0 0 0 0 array 0 到一维数组中 l array 0 08 0 5
  • 使用 XSLT 的 XML 到 XML,根据值省略特定元素

    我正在尝试生成一个与初始文件几乎相同的 xml 文件 但我需要我的 xsl 表将其转换为仅包含 为 公寓 或 单元 且具有值的文件 中超过 1 个我完全迷失了 任何帮助将不胜感激 我最初的 xml 表如下
  • SVG/矢量图室内导航路由

    我一直在网上搜索有关如何为基于 SVG 的室内平面图实现我自己的点对点导航系统的教程或方法 我已经在网上搜索过 但唯一的选项适用于谷歌地图 不过 我使用 Illustrator 创建了地图 并使用路径 矢量作为 SVG 图像 我不需要为用户
  • RestTemplate ClientHttpResponse.getBody() 抛出 I/O 错误

    我正在使用 Spring RestTemplate 进行 RESTful 调用 我还使用自定义 ClientHttpRequestInterceptor 来记录请求和响应以进行调试 为了多次读取响应 一次用于日志记录 一次用于处理 我使用
  • 使用子进程 PIPE 在 Python 脚本之间发送字符串

    我想在我的主 python 程序中使用子进程打开一个 Python 脚本 我希望这两个程序能够在运行时相互聊天 这样我就可以监视从属脚本中的活动 即我需要它们在彼此之间发送字符串 主程序将具有与此类似的功能 它将与从属脚本进行通信并监视 S
  • 如何修改 IE 和 Opera 中 SELECT 标签的默认突出显示行为?

    这是我的 HTML
  • 如何获取 ListView 项目 onItemClick 的光标值?

    我创建了一个数据库 其中包含表 类别 和列 id 标题等 我想从我的数据库中读取这些类别的数据并将它们列出在ListView 这是我的代码 public class MainActivity extends listActivity pri
  • YouTubeAndroidPlayerAPI 无法播放某些视频

    更新 09 05 2016 17 10 问题似乎与视频的发布日期有关 在4月的最后一周 我在YouTube上发布了很多视频 在4月27日19 00之前发布的视频可以正常工作 而在4月27日21 15之前发布的视频可以正常使用 当天就讨论了该