在Android中使用JWplayer在Phonegap中播放流式视频

Aya*_*e__ 4 video streaming android rtmp cordova

我正在尝试使用JWPlayer作为Android的一种方式,不支持在Phonegap中的Webview中进行HLS播放(或者至少我无法使用它,只能使用WebM流和https://github.com/上的视频插件macdonst/VideoPlayer,HLS流只提供音频)

我知道用户需要安装闪存,但目前对我来说最重要的是获得设备上显示的RTMP或HLS(.m3u8)(2.3,4.0或4.1,无论哪个都有效!)

但是,当我在android中实现JWplayer时,我一直收到"Error loading player:找不到可播放的源代码"错误.到目前为止,我只在模拟器中测试过.

代码没什么特别的,在包含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>
Run Code Online (Sandbox Code Playgroud)

显然,我有正确的路径,但出于客户隐私原因,这里模糊了它们.

有没有人知道为什么这不起作用?或者我如何让RTMP/HLS流在Android设备上运行?如上所述,该应用程序是PhoneGap应用程序.

谢谢!

小智 6

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中有所下降.[参考 - HTML5视频的状态](http://www.longtailvideo.com/html5/) (2认同)