最适合移动设备的自适应比特率流是HLS(HTTP直播流)。
HLS使用主m3u8清单文件将不同的屏幕分辨率与媒体文件块映射,并根据客户端屏幕分辨率和网络波动提供适当的分辨率。
我检查过您的KitchenSink应用程序的代码,我发现您的MediaPlayer正在提供mp4文件。 有没有人试图用m3u8清单替换mp4链接? 它应该工作吗? 您是否考虑在MediaPlayer中包含现有解决方案=> https://github.com/videojs/videojs-contrib-hls。
答案 0 :(得分:1)
Media依赖于本机操作系统播放,因此如果操作系统支持本机编解码器,它就可以正常工作。
主要动机是避免媒体的问题本质,这是专利诉讼和复杂性的领域。
如果原生平台支持编解码器它将起作用,我们使用了264,因为它得到普遍支持,这是非常罕见的。我们的模拟器使用JavaFX进行视频播放,并且他们的编解码器支持是有问题的"所以264可能是我们唯一可以在模拟器和所有设备中使用的方法。
如果你有一个编解码器的纯Java实现,你可以把它移植到Codename One。上面的编解码器的JavaScript版本也可能在Web浏览器组件中起作用,但可能无法在模拟器中工作,因为来自JavaFX的webview在HTML5支持方面非常弱,但它可能适用于设备。
答案 1 :(得分:0)
我已经用KitchenSink / src / com / codename1 / demos / kitchensink / Video.java中的demo m3u8链接替换了mp4媒体链接,并在iPhone 6S / IOS 11.0.2和Galaxy Tab上测试了生成的apk和ipa注意/ Android 7.1.1。
m3u8流媒体可以在Android和iPhone设备上正常运行。
对于那些需要一些m3u8工作样本的人,请在videojs contrib repos =>中帮助你自己。 https://github.com/videojs/videojs-contrib-hls。