我想将mp3文件解码为pcm或wav数据。(Android应用程序:API 20)
我使用this方法解码来自mp3的数据,但是在使用C ++的原生平台上。
解码后我知道从解码器填充的输出缓冲数据是“声音/原始”格式。 这个缓冲的数据存储在uint8_t *中,所以它是uint8_t(字节)数组(值从0到255)。
如果有可能,我如何将此数组转换为pcm或wav格式?
答案 0 :(得分:1)
音频解码器目前都返回16位PCM音频,因此只需将uint8_t*
转换为int16_t*
,即可读出PCM样本。如果您有size
个字节的数据,则可以从size/2
指针读取int16_t*
个样本。您也可以从输出格式中检查AMEDIAFORMAT_KEY_CHANNEL_COUNT
- 如果您总共有size/2
个样本,则每个频道都会有size/(2*channels)
个样本元组。