ios Swift - 初始化许多 AVAudioPlayer 与许多字符串\路径

标签 ios swift avaudioplayer resource-management

<分区>


想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它.

关闭 7 年前

我正在开发一款应用程序,其中包含大约 500 种不同的短音频,每种都有自己的 mp3 文件。我正在使用 AVAudioPlayer 来播放它们。 音频不应同时播放。

我想到了几种选择:

  1. 初始化500个AVAudioPlayers对象,必要时调用相关对象的play()
  2. 持有 1 个 AVAudioPlayer,并根据需要将其更改为指向相关文件。这需要消耗 500 个字符串的文件名管理,并在运行时初始化其资源路径以进行重新初始化。 (可能更难调试)
  3. 拥有 500 个资源路径(半资源初始化)和 1 个为它们提供服务的 AVAudioPlayer

它的最佳实践是什么?

最佳答案

选项 1 是个坏主意,会占用 GOBS 内存。它甚至可能导致您的应用因使用过多 RAM 而被终止。

解决方案 2 和 3 实际上是相同的。

关于ios Swift - 初始化许多 AVAudioPlayer 与许多字符串\路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35349846/

上一篇:ios - 在 collectionView 中重用时,UIImageView 大小不适用

下一篇:ios - 类中的枚举作为参数

相关文章:

objective-c - 更新 "while loop"中的 UILabel

iphone - 在 iPhone 应用程序中以 mp3 格式录制音频

ios - 检测应用程序是否是从通知中心或应用程序图标中点击启动的,设置键内容可用=1

ios - AVAudioPlayer 的属性给出 "Cannot assign result of this property"

ios - 如何使用 Swift 在 iOS 中为不同的通知响应播放单独的音频?

ios - 为什么我在 Swift5 中收不到推送消息?

ios - 快速触摸开始并将其显示在触摸的对象上

ios - 使用 UIDatePicker 在特定时间停止通知

具有关联类型的 Swift 协议(protocol) - 类型可能不会引用自身作为要求

ios - 如何在 Parse 中快速获取用户对象的自定义属性