【发布时间】:2014-08-14 17:21:54
【问题描述】:
我正在构建一个表格视图,其中每个单元格代表用户点击特定单元格时播放的声音。
在 Objective-C 中它运行良好,但现在 Apple 发布了 Swift,我决定立即移动,但由于某种原因声音没有播放。当用户点击单元格时我的代码:
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
var currentItem = self.items[indexPath.row]
var audioPath = NSString(string: NSBundle.mainBundle().pathForResource(currentItem.soundID, ofType: "mp3"))
println(audioPath)
var audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(string: audioPath), error: nil)
audioPlayer.play()
}
currentItem 是数组中必须调用的对象。我可以播放的每个声音都放在一个自定义对象中,连同一个标题和一个图像。该对象被放入currentItem 的实例中。
这是当我点击其中一个单元格时 printNL 输出的内容:
/private/var/mobile/Containers/Bundle/Application/ADF0CAFC-4C9E-475E-B3F0-CD85A1873CA5/Juichen.app/StupidQuestion.mp3
它不会给出错误。我已经尝试将声音文件移动到其他文件夹,但这也不能解决问题。因此,我假设出现这个问题是因为我调用了audioPlayer 不正确?
任何帮助将不胜感激!
【问题讨论】:
-
我在您的代码和另一个示例之间唯一能看到的是另一个示例调用
audioPlayer.prepareToPlay()。你可以试试吗? -
很抱歉,但这并不能解决问题。感谢您的回复。目前,我的音频 (.mp3) 文件位于 Xcode 中的
/Art/Sounds文件夹和项目文件夹SoundList/Soundlist中(我的项目名称是,猜猜看,Soundlist。)。我已经尝试将文件移动到其他文件夹,但这并没有解决问题。也许我必须编辑文件路径?如果是这样,我该怎么做? -
获取 mp3 路径的方式是,如果 mp3 不存在,则路径为
nil。由于您从该函数中获得了有效路径,因此该文件就在那里。那不是你的问题。由于某种原因,您的 URL 可能不正确。确保它是好的和有效的。
标签: ios iphone xcode swift avaudioplayer