我是新手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标题吗?
参考:
Set a Magic Cookie for an Audio File
Set a Magic Cookie for a Playback Audio Queue
CoreAudio - how to determine the end of the playing aac file
非常感谢。
赖安
答案 0 :(得分:0)
将文件类型设置为kAudioFileM4AType
AudioFileCreateWithURL (
audioFileURL,
kAudioFileM4AType,
&audioFormat,
kAudioFileFlags_EraseFile,
&audioFileID
);