2011-09-27 86 views
1

我有一個由程序生成的自我生成的DTMF聲音(帶有wav標頭),我希望能夠快速播放,實際上只要用戶觸摸按鈕。這個DTMF​​聲音必須無限地播放/循環播放,直到我停止播放。一些其他聲音必須能夠同時播放。在iOS中立即開始播放短的自制聲音

我對音頻編程非常陌生,我測試了很多方法,現在我迷了路。

我該如何做到這一點?

需求:

  • 很快開始播放(包括第一次)
  • 在同一時間較多聲音(短聲+ - 2-6秒)
  • 無限DTMF聲音無間隙
  • 在被打/能夠阻止不同的聲音有控制權只是一個播放的聲音

回答

1

AVAudioPlayer如果您確實需要延遲儘可能低,那麼您可以忍受一些延遲OpenAL(例如Finch)。

+0

其實你可以通過提前排隊軌道擺脫這種延遲。這樣當你玩這個遊戲時你會得到一個熱門的開始。 –

+0

有多熱?上次我測量的時間總是至少20毫秒左右,這對於很多目的來說太慢了。但是我嘗試了很長一段時間,所以情況可能會好轉。 – zoul

+0

/s/hotstart/lukewarmstart –

-1

我使用已經存在的.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]; 

} 
+0

我不認爲系統聲音服務很適合這個。延遲如何?你可以循環播放聲音嗎?你能阻止個人的聲音嗎? – zoul