com.codename1.components.MediaPlayer是否支持HLS Adaptive Bitrate Streaming

Does the com.codename1.components.MediaPlayer support HLS Adaptive Bitrate Streaming

对移动设备最友好的自适应比特率流媒体是 HLS(HTTP 实时流媒体)。

HLS 使用主 m3u8 清单文件将不同的屏幕分辨率映射到媒体文件块,并根据客户端屏幕分辨率和网络波动提供适当的分辨率。

我检查了您的 KitchenSink 应用程序的代码,发现您的 MediaPlayer 正在播放 mp4 文件。 你们有没有试过用 m3u8 清单替换 mp4 链接? 它应该工作吗? 您是否考虑将现有解决方案包含在您的 MediaPlayer => https://github.com/videojs/videojs-contrib-hls 中。

媒体依赖于本机 OS 播放,因此如果 OS 支持本机编解码器,它就可以正常工作。

主要动机是避免媒体的问题本质,这是一个专利诉讼和复杂的领域。

如果本机平台支持编解码器,它就可以工作,我们使用 264,因为它得到普遍支持,这非常罕见。我们的模拟器使用 JavaFX 进行视频播放,它们的编解码器支持是 "problematic",所以 264 可能是我们可以选择的唯一可以在模拟器和所有设备上运行的方法。

话虽如此,如果您有编解码器的纯 Java 实现,您可能可以将其移植到代号 One。上述编解码器的 Java 脚本版本也可能在网络浏览器组件中工作,但可能无法在模拟器中工作,因为 JavaFX 的 webview 在 HTML5 方面相当薄弱支持,但它可能适用于设备。

我已将 KitchenSink/src/com/codename1/demos/kitchensink/Video.java 中的 mp4 媒体链接替换为演示 m3u8 链接,并在 iPhone 6S / IOS 11.0 上测试了生成的 apk 和 ipa。 2 和 Galaxy Tab Note / Android 7.1.1 .
m3u8 流式传输在 Android 和 iPhone 设备上可以正常工作。 对于那些需要一些 m3u8 workin 示例的人,请在 videojs contrib repos => https://github.com/videojs/videojs-contrib-hls 中帮助自己。