4

我是一个新手 Mac 程序员只有 3 个月。我遇到了音频队列服务问题,希望有人能帮助我。

我使用 Audio Queue Services API 创建了一个录音程序,并输出 AAC 格式的数据。看起来不错,一切正常。

在我使用MP4V2库(一个开源库)输出 .mp4 文件之前,问题就出现了。

问题1:

我使用魔法 cookie作为 AAC 标头来输入 MP4V2 库函数 MP4WriteSample()。.mp4 文件里面有数据,但是播放器(例如:Quicktime)不能识别.mp4 文件,它不能播放音频数据。


问题2:

我将我的音频队列基本描述格式设置如下:

    aqData.mDataFormat.mSampleRate = 44100.0;
    aqData.mDataFormat.mFormatID = kAudioFormatMPEG4AAC;  // AAC codec.
    aqData.mDataFormat.mChannelsPerFrame = 2;
    aqData.mDataFormat.mFramesPerPacket = 1024;

并使用 AudioQueueGetProperty() 获取魔法 cookie。

比我打印出我的魔法饼干内容,像这样:

    <03808080 22000000 04808080 14401500 18000001 f4000001 f4000580 80800212 10068080 800102>

共 39 个字节。

究竟是什么意思?

每个代表的 39 个字节是什么意思?

它可以转换为 AAC 标头吗?

参考 :

为音频文件设置 Magic Cookie

为播放音频队列设置 Magic Cookie

CoreAudio - 如何确定播放aac文件的结尾


非常感谢。

瑞安

4

1 回答 1

0

将文件类型设置为 kAudioFileM4AType

AudioFileCreateWithURL (
            audioFileURL,
            kAudioFileM4AType,
            &audioFormat,
            kAudioFileFlags_EraseFile,
            &audioFileID
    );
于 2012-02-21T09:43:21.527 回答