如何播放多个音频文件?

时间:2011-09-29 09:21:30

标签: 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. 引用它们
  3. 我可能需要制作NSDictionary数组来引用mp3文件的名称
  4. 我可能需要创建一个方法(根据选择器的值检查mp3文件),这些方法将放在UIPicker的rowdidselect部分。
  5. 伙计们 - 请帮帮我。你的想法,意见,答案和建议都会有所帮助。

    请提供: - )

    提前致谢: - )

1 个答案:

答案 0 :(得分:0)

我会说你有一个合理的方法。实现这一目标不止一种方法,但你的方法是合理的。为什么不试试呢?

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