我正在测试
MIC
- > AudioRecord(原始PCM)
- > MediaCodec编码器(原始AAC)
- > UDP
- > MediaCodec解码器(原始PCM)
- >扬声器
目前,解码器进程已成功完成,至少没有错误。
然而,rawPCM的Byte []大小作为每个解码周期的输出大约是编码周期输入的两倍。
D / AudioRecoder: 4096 字节读取
D / AudioEncoder:360字节编码
D / UDP接收器:已收到!!来自/// 127.0.0.1:39000D / UDP接收器:收到360个字节
D / AudioDecoder: 8192 字节已解码
显然,我预计rawPCM大小与原始大小相匹配,并且感觉不对。
这个问题与我以前的问题有关,代码也在那里。
PCM -> AAC (Encoder) -> PCM(Decoder) in real-time with correct optimization
到目前为止,我还没有完成这个解码后的字节来播放扬声器。
有什么想法?感谢。
更新:
我尝试使用扬声器,实际上,略微工作,所以解码过程至少有效。
略微意味着,延迟约为10秒,音质非常糟糕。我在Genymotion模拟器上测试它,并且不知道这种模拟器如何影响它。
答案 0 :(得分:3)
听起来你正在捕捉单声道,对其进行编码,然后解码器将其输出为立体声流,单声道通道在左右声道中重复。
确保在MediaCodec.dequeueOutputBuffer()
返回MediaCodec.INFO_OUTPUT_FORMAT_CHANGED
时,您致电MediaCodec.getOutputFormat()
以获取当前格式。