gpt4 book ai didi

ios - 如何预加载音频文件xcode

转载 作者:行者123 更新时间:2023-11-29 13:31:21 27 4
gpt4 key购买 nike

我想在我的应用程序中预加载一个 *.wav 文件,因为它相当大。我想在 viewcontroller1 中开始加载它,然后在 viewcontroller15 中播放它。我需要代码来预加载它;播放代码是:

CFBundleRef mainbundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef =CFBundleCopyResourceURL(mainbundle, (CFStringRef) @"america", CFSTR ("wav"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);

最佳答案

预加载 wav 文件的标题需要读取非常少量的数据。这足以初始化您的音频播放流。您还需要填充播放缓冲区(要读取的数据量相当小)才能开始播放。

要预加载音频文件的示例数据,您可以使用 AudioFile* API 和自定义 I/O 回调。

但是,您描述的场景很好地说明了何时预加载音频文件的示例数据。

可以从磁盘实时流式传输一个 wav 文件。它不需要在播放前读取整个文件的样本数据。实时播放不需要将大型音频文件加载到内存中。当然,iOS 设备的内存上限也很低。

如果预加载和初始化流是您想要的,您可以使用 ExtAudioFile* API 并仍然使用 AudioQueue* 等 API 进行流式传输。

有关您所面临问题的更多详细信息可能会有所帮助。在这种情况下,我认为没有任何理由预加载音频文件的样本数据;只有负面影响。

关于ios - 如何预加载音频文件xcode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11805428/

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