相关疑难解决方法(0)

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

我试图通过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];
Run Code Online (Sandbox Code Playgroud)

一旦完成,我还实现了audioPlayerDidFinishPlaying方法来释放AVAudioPlayer.

我第一次播放音频时滞后是显而易见的 - 至少2秒.然而,之后立即播放声音.我怀疑那个罪魁祸首是[NSData dataWithContentsOfMappedFile]最初从闪存中读取了很长时间,但后来读取速度很快.不过,我不确定如何测试.

是这样的吗?如果是这样,我是否应该预先缓存NSData对象并积极地在低内存条件下清除它们?

iphone audio caching nsdata avaudioplayer

36
推荐指数
4
解决办法
2万
查看次数

标签 统计

audio ×1

avaudioplayer ×1

caching ×1

iphone ×1

nsdata ×1