使用 AVPlayer 保留多个 mp3 声音

Posted

技术标签:

【中文标题】使用 AVPlayer 保留多个 mp3 声音【英文标题】:Retain several mp3 sounds using AVPlayer 【发布时间】:2013-07-09 09:12:05 【问题描述】:

我正在编写一本交互式儿童读物,为此我构建了一个声音滑动窗口。对于声音 .caf,我在内存中加载不同的声音没有任何问题,因为我使用了 SystemSoundID:

AudioservicesCreateSystemSoundID(CFBundleCopyResourceURL(CFBundleGetMainBundle(),(CFStringRef)@"name_sound", CFSTR("caf"), NULL), &systemSoundIDs[0]);

但是我也有 mp3 文件,对于那种声音,我不能使用我之前解释的方式(systemSoundID 不支持 mp3)。是否可以使用 AVPlayer 做到这一点?有没有办法同时在内存中加载多个 mp3 声音?

【问题讨论】:

【参考方案1】:

一般来说,如果文件都是 MP3 或 AAC 编码的,则您不能在 iPhone 上同时播放 2 种声音,因为这些压缩格式的实时解码只有一个硬件路径。您可以播放多个已解压缩的文件,因此您可以做的一件事就是提前读取 AAC 或 MP3 文件并将其保存为未压缩的 .caf。您需要小心管理磁盘空间,但这只是要付出的代价。

【讨论】:

以上是关于使用 AVPlayer 保留多个 mp3 声音的主要内容,如果未能解决你的问题,请参考以下文章

AVPlayer/AudioPlayer:没有错误但没有声音

AVPlayer 不播放 URL 声音 Swift 3

我的应用程序启动时如何播放声音

使用 AVURLAsset + AVPlayerItem + AVPLayer 流式传输 .mp3

AvPlayer 正在下载 mp3 而不是流式传输

AVPlayer 不在 iOS 文档目录中播放 MP3 音频文件