我们已经开发了一款可以播放MP4音频流的应用程序。现在我们想要将这些MP4流替换为HLS流(.m3u8),因为IOS有内置支持播放HLS流。我们已经尝试在安卓5.1和6.0设备上播放流,看起来原生安卓媒体播放器对HLS流有支持。但是在部分4.4版本设备上,我们发现媒体播放器在执行操作如seek()等时变得不响应。请问有人能够确认原生安卓媒体播放器是否完全支持HLS流(.m3u8)?
我有同样的问题,但在我的情况下,我需要播放视频。
虽然较新版本的Android操作系统表现会更好一些,但Android碎片化仍然是一个问题,根据Android版本的不同,HLS可能会:
完全不支持(Android 2.3,姜饼)
导致设备崩溃(Android 3.0,蜂巢)
缺乏寻找能力,功能图像失真,并在全屏时完全重新启动视频(Android 4.0,冰淇淋三明治)
缺乏寻找能力,在全屏时抛出错误并崩溃(Android 4.1,果冻豆)
我找到了一些可能的解决方案:
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依赖项: compile 'com.google.android.exoplayer:exoplayer:r1.4.2'