gpt4 book ai didi

iphone - 在 iOS 中多次播放声音的正确方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:28 25 4
gpt4 key购买 nike

我需要连续播放 3 次 .aiff 声音。声音长度为 0.1 毫秒,播放间隔也应为 0.1 毫秒。所以我决定用 NSTimer 来做。这是我的解决方案:

-(void)playSound{
timerCounter = 0;
timerForSound = [NSTimer scheduledTimerWithTimeInterval:0.2
target:self
selector:@selector(playSoundThreeTimes)
userInfo:nil
repeats:YES];
}

-(void)playSoundThreeTimes{
// play alert sound
AudioServicesPlaySystemSound(beepSound);
timerCounter++;
if(timerCounter == 3){ // sound played 3 times
[timerForSound invalidate];
timerCounter = 0;
}
}

问题是声音有时会滞后,即使我将间隔设置为 0.25(0.2 是因为声音长度 + 间隔 = 0.2)。

任何人都可以提出更好的方法或告诉问题可能是由什么引起的。

艺术

编辑:将此添加到异步线程也不起作用:

dispatch_async(dispatch_get_global_queue(0, 0), ^{
[self playSound];
});

最佳答案

我可能是错的,但音频应该在它自己的线程上,但是我不确定如何在 ObjC 中处理它(我用 C++ 编写音频程序)。

NSTimer 并不总是准确的,因为(我认为)它是一个消息线程。在高间隔(1 秒以上)下,它不会引人注意,但在如此短的速度下,它可能会滞后。

关于iphone - 在 iOS 中多次播放声音的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9111308/

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