gpt4 book ai didi

iphone - 使用 AVAudioPlayer 延迟播放声音

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:52 24 4
gpt4 key购买 nike

-(IBAction)playSound{ AVAudioPlayer *myExampleSound;

NSString *myExamplePath = [[NSBundle mainBundle] pathForResource:@"myaudiofile" ofType:@"caf"];

myExampleSound =[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:myExamplePath] error:NULL];

myExampleSound.delegate = self;

[myExampleSound play];

}

我想在单击按钮时播放蜂鸣声。我用过上面的代码。但是播放声音需要一些延迟。

任何人请帮助。

最佳答案

延迟有两个来源。第一个较大,可以使用 AVAudioPlayerprepareToPlay 方法消除。这意味着您必须将 myExampleSound 声明为类变量并在您需要它之前的某个时间对其进行初始化(当然在初始化后调用 prepareToPlay):

- (void) viewDidLoadOrSomethingLikeThat
{
NSString *myExamplePath = [[NSBundle mainBundle]
pathForResource:@"myaudiofile" ofType:@"caf"];
myExampleSound =[[AVAudioPlayer alloc] initWithContentsOfURL:
[NSURL fileURLWithPath:myExamplePath] error:NULL];
myExampleSound.delegate = self;
[myExampleSound prepareToPlay];
}

- (IBAction) playSound {
[myExampleSound play];
}

这应该会将延迟降低到大约 20 毫秒,这可能足以满足您的需求。如果没有,您将不得不放弃 AVAudioPlayer 并切换到其他播放声音的方式(例如 Finch sound engine )。

另请参阅我自己关于 lags in AVAudioPlayer 的问题.

关于iphone - 使用 AVAudioPlayer 延迟播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2550480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com