在 Android 中使用 JWplayer 在 Phonegap 中进行流式视频播放
Posted
技术标签:
【中文标题】在 Android 中使用 JWplayer 在 Phonegap 中进行流式视频播放【英文标题】:Using JWplayer in Android for streaming video playback in Phonegap 【发布时间】:2012-12-04 20:55:56 【问题描述】:我正在尝试使用 JWPlayer 作为解决 android 不支持在 Phonegap 的 Webview 中播放 HLS 的一种方式(或者至少我无法让它工作,只有 WebM 流和 https://github.com/macdonst/VideoPlayer 上的视频插件,HLS流只提供音频)
我知道用户需要安装 flash,但目前对我来说最重要的是让 RTMP 或 HLS (.m3u8) 显示在设备上(2.3、4.0 或 4.1,无论哪个有效!)
但是,在 android 中实现 JWplayer 时,我不断收到“加载播放器时出错:找不到可播放的源”错误。到目前为止,我只在模拟器中进行了测试。
代码没什么花哨的,在包含cordova JS之后的html文件中我所做的就是:
<script type="text/javascript" src="jwplayer/jwplayer.js" ></script>
<script type="text/javascript">jwplayer.key="b+mykey"</script>
<div id="my-video"></div>
<script type="text/javascript">
jwplayer('my-video').setup(
flashplayer: "javascripts/lib/jwplayer/player.swf",
streamer: "rtmp://myserveraddressgoeshere",
file: "corecctfile.goeshere-sdh",
provider:"rtmp",
autostart: 'true',
controlbar: "over",
width: '720',
height: '405'
);</script>
显然我有正确的路径,但出于客户隐私的原因在这里将它们隐藏了。
有没有人知道为什么这不起作用?或者我如何可以让 RTMP / HLS 流在 Android 设备上工作? 如前所述,该应用程序是一个PhoneGap 应用程序。
谢谢!
【问题讨论】:
这段代码在默认的 Android 浏览器中是否有效? 【参考方案1】:JW Player 不再支持 Android 上的 Flash,作为对 Adobe 也放弃 Android Flash 支持的回应。从 Android 2.3 开始,仅支持 HTML5(因此仅支持 MP4/WebM)。
HTTP Live Streaming 在 Android 中对 HTML5 的支持确实有限。它仅在 4.0+ 中播放,并且有一些严重的错误:无法识别显示纵横比,并且点播 HLS 流就像实时流一样(没有时间线;没有搜索)。
在 Android 上进行流式传输的最佳解决方案是为您的原生应用使用支持 HLS 的 SDK。有几家公司提供这样的 SDK(例如 devicedrm.com 或 nexstreaming.com)。不过,我不知道这样的解决方案是否适用于 Phonegap。
【讨论】:
我只想补充一点,HTTP Live Streaming 是在 Android 4.0 中引入的,但在 4.1 中被删除了。 Reference - The state of HTML5 Video以上是关于在 Android 中使用 JWplayer 在 Phonegap 中进行流式视频播放的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JwPlayer for android 中进行 chrome cast
License Edition INVALID 对 JW Player Android SDK 无效