我正在将一个音频播放器项目从Vitamio移植到ExoPlayer。我已经能够使它工作,除了我有两个音频源不会播放。它们和其他播放完美的样本没有明显的区别。问题不是样本的长度,因为很长时间运行的样本也会运行。下面是链接到样品文件:Exoplayer无法传输某些AAC编码音频.m3u8
http://s3.amazonaws.com/instarad_audio/20/208888/index.m3u8 http://s3.amazonaws.com/instarad_audio/20/208237/index.m3u8
以下是错误 - >
java.lang.IllegalStateException 在android.media.MediaCodec.dequeueOutputBuffer(本机方法) 在com.google.android.exoplayer.MediaCodecTrackRenderer.drainOutputBuffer(MediaCodecTrackRenderer.java:720) 在com.google.android.exoplayer.MediaCodecTrackRenderer.doSomeWork(MediaCodecTrackRenderer.java:420) 在com.google.android.exoplayer.ExoPlayerImplInternal。这样做meWork(ExoPlayerImplInternal.java:398) at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:203) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os。 Looper.loop(Looper.java:157) 在android.os.HandlerThread.run(HandlerThread.java:61) 在com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)
11-27 17:50:05.423 28529-28571/com.google.android.exoplayer.demo E/OMXNodeInstance:OMX_FreeBuffer为缓冲液H
我创建这些样本作为TYPE_HLS_MEDIA,无论是与AUDIO_AAC编码或视频_ H264。
我最好的猜测是这些样本被记录为异常采样率,或者他们以某种方式损坏。
所有样本都将被编码为AAC流式,通过.m3u8格式。我应该看看其他的渲染器/编码器吗?
谢谢 大卫
我已向ExoPlayer团队证实,问题是使用AAC_LTP对不良样本进行编码。这是一个链接到他们的github页面上的线程。 https://github.com/google/ExoPlayer/issues/178。我正在考虑使用MediaCodec api添加编码功能,或者限制MediaRecorder的编码。可能是Android MediaRecorder正在使用AAC_LTP创建示例;即使它无法播放格式。 – user1743524 2014-12-05 16:07:40
你用什么工具分析音频样本? – user1743524 2014-12-05 16:20:51