最适合移动设备的自适应比特率流媒体是 HLS(HTTP 实时流媒体)。
HLS 使用主 m3u8 list 文件将不同的屏幕分辨率与媒体文件 block 进行映射,并根据客户端屏幕分辨率和网络波动提供适当的分辨率。
我检查了您的 KitchenSink 应用程序的代码,发现您的 MediaPlayer 正在提供 mp4 文件。 你们中有人尝试过用 m3u8 list 替换 mp4 链接吗? 它应该起作用吗? 您是否考虑将现有解决方案包含在 MediaPlayer => https://github.com/videojs/videojs-contrib-hls 中。
最佳答案
媒体依赖于 native 操作系统播放,因此如果操作系统支持 native 编解码器,它就可以正常工作。
主要动机是为了避免媒体的问题本质,即专利诉讼和复杂性领域。
如果 native 平台支持编解码器,它就会工作,我们使用 264,因为它得到普遍支持,这非常罕见。我们的模拟器使用 JavaFX 进行视频播放,并且它们的编解码器支持“有问题”,因此 264 可能是我们可以选择在模拟器和所有设备上工作的唯一方法。
话虽如此,如果您有一个编解码器的纯 Java 实现,您可能可以将其移植到 Codename One。上面的编解码器的 JavaScript 版本可能也可以在 Web 浏览器组件中工作,但可能无法在模拟器中工作,因为 JavaFX 的 Webview 在 HTML5 支持方面相当薄弱,但它可能在设备上工作。
关于codenameone - com.codename1.components.MediaPlayer 是否支持 HLS 自适应比特率流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46992452/