在 Android 应用程序中播放 YouTube 视频

2024-02-13

在我的 Android 应用程序中,我希望用户点击一次图像,自动播放 YouTube 视频,视频播放完毕后,用户立即返回到应用程序。在 Android 中执行此操作的最佳方法是什么?

我尝试使用意图。这是有效的,因为视频出现在我认为是 YouTube 网页上。但是播放视频需要再次点击。如果可能的话我想避免这种情况。

我尝试了整个 MediaPlayer、prepareAsync、setOnPreparedListener 但从未让它工作。由于某种原因,onPrepared 从未被调用。没有抛出任何异常。我正在使用模拟器进行测试,而且我是 Android 新手,所以我不确定物理设备上的行为是否会有所不同。

通过利用网络视图发挥创意,我在 iOS 上运行得很好。我希望它在 Android 上更简单。这docs http://developer.android.com/guide/topics/media/mediaplayer.html确保听起来直截了当。

Cheers!


Update:下面的一切仍然是正确的,但是适用于 Android 的官方 YouTube API https://developers.google.com/youtube/android/player/现在可用。

到目前为止,在 Android 上播放 YouTube 视频的最简单方法是简单地触发 Intent 来启动本机 Android YouTube 应用程序。当然,如果您使用的不是经过认证的 Google 设备,并且没有 Google 应用程序的补充,那么此操作将会失败。 (Kindle Fire 可能是此类设备的最大例子)。这种方法的问题在于,当视频结束时,用户不会自动返回到您的应用程序。他们必须按“后退”按钮,此时您可能已经丢失了它们。

作为第二个选项,您可以使用 MediaPlayer API 播放 YouTube 视频。但这种方法有三个注意事项:

1) 您需要调用 YouTube 的 GData Webservice API,并向其传递视频 ID。您将返回大量元数据,以及应传递给 MediaPlayer 以播放 H.264 编码流的 RTSP URL。这可能是您尝试使用 MediaPlayer 失败的原因;您可能没有使用正确的 URL 进行流式传输。

2) GData/MediaPlayer 方法将仅播放低分辨率内容(176x144 或类似)。这是 YouTube 为防止内容被盗而深思熟虑的决定。当然,这并不能提供非常令人满意的体验。有一些后门黑客可以获取更高分辨率的流,但并非所有版本的 Android 都支持它们,使用它们违反了 YouTube 的服务条款。

3) RTSP 流可能会被某些内部网络/防火墙阻止,因此此方法可能不适用于所有用户。

第三个选项是在您的应用程序中嵌入 WebView。您可以在这里采取两种方法:

1) 您可以嵌入 Flash 对象并运行 YouTube 的标准桌面 Flash 播放器。您甚至可以使用 Javascript API 来控制播放器,并将事件转发回本机 Android 应用程序。这种方法效果很好,但不幸的是,Flash 在 Android 平台上已被弃用,并且不适用于 Android 4.1 及更高版本。

2)您可以嵌入一个<video>标记通过 HTML5 播放 YouTube。不同版本的 Android 对此的支持有所不同。在Android 4.0及以上版本上运行良好;早期版本的 HTML5 有些参差不齐<video>支持。因此,根据您的应用程序必须支持的 Android 版本,您可以采用混合方法,在 Android 4.x 或更高版本上嵌入 HTML5,并在所有早期版本的 Android 上嵌入 Flash。

StackOverflow 上有多个关于使用 HTML5 播放 YouTube 视频的主题;它们都没有真正描述您必须在一个地方遵循的整个过程。以下是其中一些的链接:

Android - 如何在 WebView 中播放 Youtube 视频? https://stackoverflow.com/questions/9565533/android-how-to-play-youtube-video-in-webview?rq=1

如何在 Android 上的 WebView 中嵌入 YouTube 剪辑 https://stackoverflow.com/questions/3458765/how-to-embed-a-youtube-clip-in-a-webview-on-android

在 Android WebView 中播放 Youtube HTML5 嵌入视频 https://stackoverflow.com/questions/6323169/play-youtube-html5-embedded-video-in-android-webview

在接下来的几周/几个月里,所有这一切都将变得更加容易;在 Google I/O 2012 上,他们展示/演示了适用于 Android 的新 YouTube API,该 API 将支持在您的应用程序中直接嵌入 YouTube 内容,并完全支持 Android 2.2(截至撰写本文时,约占 Android 用户群的 95%)。它到达得不够快。

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

在 Android 应用程序中播放 YouTube 视频 的相关文章

随机推荐