我一直在尝试使用Apple提供的代码实现音频单元图: IphoneMixerEQGraphTest。到目前为止,我已经遇到了两个问题:音频单元图暂停并重复
1)我找不到任何方式暂停播放
2)提供的示例重复不休。有没有一种方法可以禁用重复或停止它 - 使用计时器时,拦截某种缓冲区值,当播放几乎在结束时?
谢谢。
我一直在尝试使用Apple提供的代码实现音频单元图: IphoneMixerEQGraphTest。到目前为止,我已经遇到了两个问题:音频单元图暂停并重复
1)我找不到任何方式暂停播放
2)提供的示例重复不休。有没有一种方法可以禁用重复或停止它 - 使用计时器时,拦截某种缓冲区值,当播放几乎在结束时?
谢谢。
非重复功能,
到目前为止,我已经找到一种方法来处理音频停止 - 虽然它不漂亮:
我AVAudioPlayer加载相同的音频文件 - 从它的声音文件时间得到。然后,使用
performSelector:withObject:afterDelay:
当声音文件应该结束播放时,我可以停止AUGraph。
PAUSE AUGRAPH功能,
事实证明,实施暂停是非常简单的。虽然AUGraph数据源没有改变 - 通过致电
[graphController startAUGraph]; or [graphController stopAUGraph];
只会暂停/恢复播放。
虽然这会影响performSelector计时器。因此,要同时使用 - 暂停/不重复的可能性,应该使用NSTimer - 当AUGraph暂停时 - 然后计时器也会暂停。当AUGraph恢复时 - 计时器恢复计数,并在达到提供的声音文件持续时间时停止播放。
底线
通过使用来自AVAudioPlayer(或提供时段的任何其他播放器)的耐久值 - 这是可能实现AUGraph声音播放器,播放/暂停/停止(不重复/重复)/下一首歌曲/上一首歌曲/功能+ EQUALIZER。
AVAudioPlayer是一个巨大的类,您可以轻松地获取时间:
Float64 fileDuration = PrepareFileAU (fileAU, fileFormat, audioFile);
看到ADC采样于:
http://developer.apple.com/library/mac/#samplecode/PlayFile/Introduction/Intro.html
避免包括其他框架。