我们已经开发了一个播放 mp4 音频流的应用程序。 现在我们想用 HLS 流 (.m3u8) 替换这些 mp4 流,因为 iOS 已经提供了对播放 HLS 流的开箱即用支持。 现在我们已经尝试使用 Android 5.1 和 6.0 设备播放流,并且它似乎支持原生 Android 媒体播放器的 HLS。
但是在某些 4.4 版本的设备上,我们看到媒体播放器在执行诸如
seek()
等操作时变得无响应。
谁能确认原生 android 媒体播放器是否完全支持 HLS 流(.m3u8)?
我有同样的问题,但就我而言,我需要播放视频。
虽然较新版本的 Android 操作系统往往性能更好,但 Android 碎片仍然是一个问题,并且根据 Android 版本,HLS 可能:
根本不支持(Android 2.3、Gingerbread)
导致设备崩溃(Android 3.0、Honeycomb)
缺乏搜索能力,图像扭曲,全屏时完全重新启动视频(Android 4.0,冰淇淋三明治)
缺乏查找能力,全屏时会抛出错误并崩溃(Android 4.1,Jelly Bean)
我找到了一些可能的解决方案:
https://developer.jwplayer.com/sdk/android/docs/developer-guide/
http://docs.brightcove.com/en/perform/mobile-sdks/hls-player/guides/hls-limitations.html
http://superpowered.com/http-live-streaming-hls-android-audio-ios-hls-android-example
最后我使用 Android 4.1 中的 ExoPlayer 和以前版本中的 MediaPlayer。
Gradle 依赖: 编译 'com.google.android.exoplayer:exoplayer:r1.4.2'