gpt4 book ai didi

iphone - 第一次播放声音时 AVAudioPlayer 启动缓慢

转载 作者:行者123 更新时间:2023-12-03 18:14:13 24 4
gpt4 key购买 nike

我正在尝试消除通过 iPhone 上的 AVAudioPlayer 播放(非常短 - 不到 2 秒)音频文件时的启动延迟。

首先,代码:

NSString *audioFile = [NSString stringWithFormat:@"%@/%@.caf", [[NSBundle mainBundle] resourcePath], @"audiofile"];
NSData *audioData = [NSData dataWithContentsOfMappedFile:audioFile];

NSError *err;
AVAudioPlayer *audioPlayer = [(AVAudioPlayer*)[AVAudioPlayer alloc] initWithData:audioData error:&err];

audioPlayer.delegate = self;
[audioPlayer play];

我还实现了audioPlayerDidFinishPlaying方法来在完成后释放AVAudioPlayer。

我第一次播放音频时,明显有延迟——至少 2 秒。然而,此后声音立即播放。我怀疑罪魁祸首是 [NSData dataWithContentsOfMappedFile] 最初从闪存读取很长时间,但后来读取速度很快。不过,我不确定如何测试。

是这样吗?如果是这样,我是否应该预先缓存 NSData 对象并在内存不足的情况下积极清除它们?

最佳答案

延迟似乎与第一次实例化 AVAudioPlayer 有关。如果我加载任何音频,运行 [audioPlayerprepareToPlay],然后立即释放它,则所有其他音频的加载时间非常接近难以察觉。所以现在我在 applicationDidFinishLaunching 中执行此操作,其他一切都运行良好。

我在文档中找不到任何有关此内容的信息,但情况似乎确实如此。

关于iphone - 第一次播放声音时 AVAudioPlayer 启动缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/900461/

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