我有一個由程序生成的自我生成的DTMF聲音(帶有wav標頭),我希望能夠快速播放,實際上只要用戶觸摸按鈕。這個DTMF聲音必須無限地播放/循環播放,直到我停止播放。一些其他聲音必須能夠同時播放。在iOS中立即開始播放短的自制聲音
我對音頻編程非常陌生,我測試了很多方法,現在我迷了路。
我該如何做到這一點?
需求:
- 很快開始播放(包括第一次)
- 在同一時間較多聲音(短聲+ - 2-6秒)
- 無限DTMF聲音無間隙
- 在被打/能夠阻止不同的聲音有控制權只是一個播放的聲音
我有一個由程序生成的自我生成的DTMF聲音(帶有wav標頭),我希望能夠快速播放,實際上只要用戶觸摸按鈕。這個DTMF聲音必須無限地播放/循環播放,直到我停止播放。一些其他聲音必須能夠同時播放。在iOS中立即開始播放短的自制聲音
我對音頻編程非常陌生,我測試了很多方法,現在我迷了路。
我該如何做到這一點?
需求:
AVAudioPlayer
如果您確實需要延遲儘可能低,那麼您可以忍受一些延遲OpenAL(例如Finch)。
我使用已經存在的.wav文件。我可以輕鬆地播放它。
用於運行以下代碼。包括AudioToolbox框架。
寫入到.h文件中#import <AudioToolbox/AudioToolbox.h>
寫入.m文件
-(IBAction)startSound{
//Get the filename of the sound file:
NSString *path = [NSString stringWithFormat:@"%@%@", [[NSBundle mainBundle] resourcePath], @"/sound1.wav"];
//declare a system sound
SystemSoundID soundID;
//Get a URL for the sound file
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
//Use audio sevices to create the sound
AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
//Use audio services to play the sound
[self sound];
timer =[ [NSTimer scheduledTimerWithTimeInterval:2.1 target:self selector:@selector(sound) userInfo:nil repeats:YES]retain];
}
我不認爲系統聲音服務很適合這個。延遲如何?你可以循環播放聲音嗎?你能阻止個人的聲音嗎? – zoul
其實你可以通過提前排隊軌道擺脫這種延遲。這樣當你玩這個遊戲時你會得到一個熱門的開始。 –
有多熱?上次我測量的時間總是至少20毫秒左右,這對於很多目的來說太慢了。但是我嘗試了很長一段時間,所以情況可能會好轉。 – zoul
/s/hotstart/lukewarmstart –