虽然这个问题听起来很简单而且很容易回答 - 但我还没有在任何书籍/论坛/网站上找到完整的答案。
我的应用程序的快速背景:
我有一个从属/多 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 文件应相应更改。
我对我的要求的想法:
- 为了播放 mp3 文件,我必须将它们放在资源文件夹中并使用 NSBundle 引用它们
- 我可能必须制作 NSDictionary 数组来引用 mp3 文件的名称
- 我可能必须创建一个方法(根据选择器的值检查 mp3 文件),该方法将放置在 UIPicker 的 rowdidselect 部分。
伙计们 - 请帮我解决这个问题。您的想法、评论、回答和建议都会有所帮助。
请贡献:-)
提前致谢:-)
最佳答案
我想说您已经想通了一个合理的方法。实现此目标的方法不止一种,但您的方法是合理的。为什么不试试呢?
我只建议一个 AVPlayer 并一次加载一个 剪辑。加载新剪辑后,不要保留任何已加载的剪辑。由于您似乎一次只需要播放一个文件,因此当您给它一个新的剪辑播放时,一个播放器会执行并释放内存。由于您引用了 iOS 并且您的文件很小,因此加载它们应该非常高效。
关于objective-c - 如何播放多个音频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7595138/