如何显示和加载 iOS 应用程序资源/资产文件夹中的音频文件?

Posted

技术标签:

【中文标题】如何显示和加载 iOS 应用程序资源/资产文件夹中的音频文件?【英文标题】:how can I display and load audio files from iOS app resource/asset folder? 【发布时间】:2015-07-26 14:04:09 【问题描述】:

我对编程很陌生,并选择学习 swift 作为我的第一语言。我已经开始使用 AVFoundation 框架。在这种情况下,我正在使用 AVAudioPlayer。

我目前正在使用文件名和类型通过 NSURL 加载音频文件,但我希望能够从显示应用程序资源文件夹中当前文件的列表或菜单中为每个 AVAudioPlayer 实例加载音频文件。

这是我当前加载音频文件的方式:

var audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath:     NSBundle.mainBundle().pathForResource( "test_kick", ofType: "wav")!),    error: nil)

我已经搜索了几个小时没有运气,真的不知道从哪里开始。任何帮助将不胜感激!

【问题讨论】:

Simon,我认为资产目录不应该用于音频文件...你为什么专门使用这种方法? 谢谢你的回复。对不起,我不具体。我的意思是我想从我的支持文件而不是资产目录中加载。我在 xcode 中的支持文件文件夹中有许多 .wav 文件,我希望能够从我正在构建的应用程序中选择将哪个文件加载到 AVAudioPlayer。 【参考方案1】:

Simon,如果我理解您的问题,您知道如何从资产中加载文件,但您想显示文件列表并在单击特定文件后播放,对吗?

因此,您首先必须在 UITableView 中列出文件夹内容,然后对该 TableView 的点击做出反应,将所选文件加载到您的 AVPlayer...

NSFileManager.defaultManager().contentsOfDirectoryAtPath("your path", error: nil)

上面的代码会给你一个你已经拥有的路径内的文件数组,在 UITableView 中表示

你知道如何构建 UITableViewDataSource 和 Delegate 吗?

【讨论】:

您好 Neo,感谢您的回复。没错,我知道如何加载文件。 UITableView 对我来说是新的,将是我的下一步。感谢您的帮助! 是的,我想“简单”的方法是,如果您在 StoryBoard 中拖放一个 UITableViewController 并为其提供一个新创建的 UITableViewController 类...然后您会在前面看到您需要的代码你可以学习 Apple 的代码 sn-p... 谢谢!在这一点上,只要把我送到正确的方向是一个巨大的帮助。我真的很陌生,所以要学习很多东西。 表格视图起初令人困惑。我建议找到一个关于使用它们的教程并通过它。几乎每个人在第一次这样做时都会错误地重用单元格(包括我!)虽然我知道的大部分资源都是Objective-C,所以对不知道这一点的初学者没有帮助语言。 感谢 Duncan 的建议,完成了教程并将牢记单元重用。干杯。

以上是关于如何显示和加载 iOS 应用程序资源/资产文件夹中的音频文件?的主要内容,如果未能解决你的问题,请参考以下文章

从网站加载 iOS 应用程序资源

每次重新加载页面时,如何强制资产渲染资产?

在生产中加载webpacker资产

如何将 JSON 资产加载到 Flutter 应用程序中?

复制资产/资源使 iOS 测试令人沮丧

在 Windows 和 Mac 上运行时加载纹理