我的应用程序使用HLS播放视频,它在大多数设备上都工作得很好。当试图在三星Galaxy S3或三星Galaxy Note2上运行它时,我遇到了问题。
如果我有一个不错的Wifi连接,播放将运行没有任何问题。当我将我的连接限制到一个相当低的码率(大约300-400),并等待大约10秒后,当播放器切换图层时,播放将停止,并显示以下消息:
I/avc_utils(1929): found AVC codec config (320 x 180, Baseline-profile level 3.0)
I/ESQueue(1929): DRC : Change Resolution. [720x404] -> [320x180]
E/ACodec(1929): [OMX.SEC.aac.dec] ERROR(0x8000100b)
E/NuPlayer(1929): Received error from audio decoder, aborting playback.
E/NuPlayer(1929): audio track encountered an error (-2147483648)
E/MediaPlayer(15859): error (1, -2147483648)有谁知道为什么会发生这种情况,为什么只在某些三星设备上发生?例如,Galaxy Nexus就工作得很好。
以下是m3u8播放列表外观的示例:
EXTM3U
EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=755803
http://hiddenserver.com/layer_2.m3u8
EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1577112
http://hiddenserver.com/layer_4.m3u8
EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=32083
http://hiddenserver.com/layer_5.m3u8
发布于 2013-01-22 22:31:16
三星S3存在不支持MP3流中的HLS音频的问题。开发人员页面没有足够清楚地显示mpeg-ts仅支持AAC。
我也有同样的问题。
发布于 2013-08-15 23:39:38
至少可以说,对于Android4.0.x和4.1.x,HLS的实现是错误的。当播放器在不同层之间切换时,音频和视频解码器似乎没有使用新参数重新初始化。我在4.2和4.3上尝试了相同的HLS流,它工作得很好。
我还检查了4.1、4.2和4.3的调试日志。4.2和4.3记录了“重新初始化解码器”,4.1只是给出了许多解码器错误并崩溃。
当我用相同的音频参数对所有图层进行编码时,这个问题也在4.1版本中被消除了。然而,视频却停滞不前。
所有这些观察都表明解码器没有初始化,这实际上是android播放器中的一个bug。
发布于 2015-04-06 13:57:27
E/MediaPlayer(15859):error (1,-2147483648)表示播放器从文件的音轨中得到错误,服务器sent.They需要检查在服务器端制作块文件是否有问题。
因此,该错误可以被播放器忽略,并且可以流畅地播放。
public boolean onError(MediaPlayer arg0, int what, int extra) {
if (what != 1 || extra != -2147483648) {
//Show error
}else {
//Skip error
}
}https://stackoverflow.com/questions/14458905
复制相似问题