我能够创建我想要的avaudioplayer和avaudiorecorder的确切功能,但当然遇到延迟问题。因此,在阅读了网上的每篇文章并查看示例代码堆栈之后,我仍然不确定如何实现以下目标:
所以,使用avaudioplayer和avaudiorecorder,我只是使用大胆创建一个'caf',并在正确的bpm设置节拍器(为应用程序设置bpm)。然后我设置并播放avaudioplayer并使用audiodidfinishsuccessfully委托方法,执行一些逻辑来启动录音机,重启播放器,保持循环计数等以关闭录音和音频。
正如我所提到的,我几乎能够实现我所追求的用户体验,但延迟问题是不可接受的。
我一直在使用音频设备和远程IO,并设置了一个带回放回调和录音机回调等的项目,但现在面临着如何根据上述描述进行工作的问题。我试图为初学者制定以下内容:
任何人都可以给我一些想法或指出我正确的方向。正如我所提到的,我已经完成了一系列研究,包括购买核心有声读物,阅读atastypixel.com上的每篇文章,timbolstad.com等,并浏览苹果文档。
提前感谢您的帮助。
答案 0 :(得分:-1)
我开始使用NSTimer。使用基于BPM(每分钟节拍数)/ 60的值。因此,如果用户想要记录带有计数的2 bar文件,可能会执行以下操作:
//timer interval=100BPM/60secs per minute
timerInterval=100/60;
metroTimer = [NSTimer scheduledTimerWithTimeInterval:timerinterval target:self selector:@selector(blinkMetroLight) userInfo:nil repeats:YES];
- (void)blinkMetroLight
{
if(beatNumber == 0)
{
beatNumber = 1;
}
else if (beatNumber == 5)
{
[self audioProcessorStart];
}
if (beatNumber == 8)
{
[self audioProcessorStop];
[metroTimer invalidate]; metroTimer = nil;
}
beatNumber++
}