2009-08-24 70 views
0

看來,AVAudioPlayer不是reentent。因此,在下面會soundfx發揮完成,延遲1秒,然後再次玩,甚則1秒的延遲 - 和由此產生的重疊播放我的願望:AVAudioPlayer不是租戶是否正確?

// ... 

AVAudioPlayer* soundfx = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:nil]; 


(void) makeSomeNoise { 

    [soundfx play]; 
    sleep(1); 
    [soundfx play]; 


} 

我必須然後再打的NSOperation - 線程 - 實現我重疊播放的目標?

注:我使用IMA4/ADPCM格式,這顯然是分層聲音播放的正確格式。

乾杯, 道格

回答

1

這並不是說AVAudioPlayer不折返。這是AVAudioPlayer在runloop結束後開始播放聲音,而不是在makeSomeNoise函數中。如果你想用一秒延遲來播放你的聲音,你可以這樣做:

(void) makeSomeNoise { 
    [soundfx play]; 
    [soundfx performSelector:play withObject: nil afterDelay:1.0]; 
}