我尝试使用以下代码使用 ffmpeg 解码音频:
NSMutableData *finalData = [NSMutableData data];
......
while(av_read_frame(pFormatCtx, &packet) >= 0){
if(packet.stream_index == videoStream)
{
int consumed = avcodec_decode_audio4(pCodecCtx, pFrame, &got_frame_ptr, &packet);
if(got_frame_ptr)
{
[finalData appendBytes:(pFrame->data)[0] length:(pFrame->linesize)[0]];
}
}
av_free_packet(&packet);
}
......
[finalData writeToFile:path atomically:YES];
但是保存的文件无法播放,即使我将文件扩展名更改为wav。当我在 HexEdit(一个十六进制编辑器)中查看它时,我发现有很多零字节。例如偏移量 0x970 之前的文件内容全为零。我的代码有错误吗?任何帮助将不胜感激。