![](/img/trans.png)
[英]Using remote io for recording and AVPlayer for playing ipod library audio at the same time continuously
[英]recording against a metronome of set length using remote IO
我能夠為avaudioplayer和avaudiorecorder創建所需的確切功能,但是當然遇到了延遲問題。 因此,在閱讀了網上的幾乎所有文章並查看了示例代碼的堆棧之后,我仍然不確定如何實現以下目標:
因此,使用avaudioplayer和avaudiorecorder,我僅使用audacity創建了一個“ caf”,並將節拍器設置為正確的bpm(為應用程序設置了bpm)。 然后,我設置並播放avaudioplayer,並使用audiodidfinishsuccessally委托方法,執行一些邏輯以啟動記錄器,重新啟動播放器,維護循環計數等以關閉記錄和音頻。
如前所述,我幾乎可以實現我所追求的用戶體驗,但是延遲問題是不可接受的。
我一直在使用音頻單元和遠程IO,並且已經設置了帶有回放回調和錄音機回調等的項目,但是現在根據上面的描述面臨着如何使這項工作起作用的問題。 我正在嘗試為初學者解決以下問題:
任何人都可以給我一些想法或指出正確的方向。 正如我已經提到的,我已經進行了一系列研究,包括購買核心音頻書,閱讀atastypixel.com,timbolstad.com等上的每篇文章,並瀏覽了Apple文檔。
在此先感謝您的幫助。
我啟動一個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++
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.