使用音频队列服务(AudioToolbox/AudioQueue.h)中的接口.为要播放的每个声音创建一个音频队列对象.然后使用AudioQueueEnqueueBufferWithParameters函数指定每个音频队列中第一个音频缓冲区的同时开始时间.
以下限制适用于iPhone OS中的同步声音,具体取决于音频数据格式:
AAC,MP3和ALAC(Apple Lossless)音频:您可以同时播放多种AAC,MP3和ALAC格式的声音; 播放这些格式的多个声音将需要CPU资源进行解码.
线性PCM和IMA/ADPCM(IMA4音频):您可以同时播放多个线性PCM或IMA4格式声音,而无需考虑CPU资源.
在一次播放多个声音方面,这很容易,只需为你想要播放的每一个创建一个新的播放器实例(并记得在你完成时释放它们)
NSString *path = [[NSBundle mainBundle] pathForResource:@"YOUR_FILE_NAME" ofType:@"m4a"];
AVAudioPlayer* objAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
objAudio.delegate = self;
[objAudio play];
Run Code Online (Sandbox Code Playgroud)
要将MP3转换为IMA4(您可以同时播放多个),您可以运行以下命令(在终端中,在豹子中):
/usr/bin/afconvert -f caff -d ima4 sound.mp3 sound.caf
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请访问音频播放/录制
| 归档时间: |
|
| 查看次数: |
4053 次 |
| 最近记录: |