objective-c - 如何播放多个音频文件?

标签 objective-c ios cocoa-touch

虽然这个问题听起来很简单而且很容易回答 - 但我还没有在任何书籍/论坛/网站上找到完整的答案。

我的应用程序的快速背景:

我有一个从属/多 UI 选取器(2 个 UI 选取器 - 我们称它们为 P1 和 P2)、UITEXTVIEW 和屏幕底部的栏。在栏中,我有“播放”、“暂停”、“倒带”和“前进”等按钮,每次滚动 UIpicker P1 时,Picker p2 的值都会发生变化,因此 UITextView 中的文本也会发生变化。

我必须在我的应用程序中嵌入 700 个 mp3 文件(不要对在一个应用程序中放置这么多文件的想法感到惊讶 - 所有 mp3 的总大小为 49 mp,这些都是 20 秒的文件并且比特率非常低) .我想根据选择器中的值播放每个 mp3 文件。

这是流程 -> 我滚动 P1 -> P1 中的值更改 -> P2 的值更改 -> TextView 中的文本更改。

它就像 P1 中的“章节”和 P2 中的段落编号,以及 TextView 中段落的实际文本。

在此之后,我想嵌入 mp3 文件,以便随着选择器(P1 和 P2)中的相应变化,“播放”、“暂停”、“倒带”和“前进”中的 mp3 也应该改变。

我的需求如下:

在更改选择器值时,“播放”按钮中引用的 mp3 文件应相应更改。

我对我的要求的想法:

  1. 为了播放 mp3 文件,我必须将它们放在资源文件夹中并使用 NSBundle 引用它们
  2. 我可能必须制作 NSDictionary 数组来引用 mp3 文件的名称
  3. 我可能必须创建一个方法(根据选择器的值检查 mp3 文件),该方法将放置在 UIPicker 的 rowdidselect 部分。

伙计们 - 请帮我解决这个问题。您的想法、评论、回答和建议都会有所帮助。

请贡献:-)

提前致谢:-)

最佳答案

我想说您已经想通了一个合理的方法。实现此目标的方法不止一种,但您的方法是合理的。为什么不试试呢?

我只建议一个 AVPlayer 并一次加载一个 剪辑。加载新剪辑后,不要保留任何已加载的剪辑。由于您似乎一次只需要播放一个文件,因此当您给它一个新的剪辑播放时,一个播放器会执行并释放内存。由于您引用了 iOS 并且您的文件很小,因此加载它们应该非常高效。

关于objective-c - 如何播放多个音频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7595138/

相关文章:

ios - 添加第二个 .plist 作为子 Pane

ios - 将背景色设置为RGB UIColor ButtonTypeRoundedRect

ios - 扫描二维码经常崩溃-AVCaptureSession

objective-c - 将属性合成到基类的ivar

objective-c - 如何在 Objective-C 中为 BOOL 指针赋值?

objective-c - 解析 Coldfusion 9 在 Cocoa Obj-C 中生成的 JSON 响应

iphone - (自定义)滚动后 UITableViewCell 混淆

ios - 从xml服务获取值时出现\n而不是字符串

iphone - 在一个可执行文件中使用 iPhone OS 3.0 功能(如果可用)和 2.1 功能(如果不可用)

iphone - 在运行时删除 UIImageView 中的图像背景