【发布时间】:2016-01-19 21:29:24
【问题描述】:
我正在使用 AVPlayer 播放我从后端获取的 URL。最初,我将这些项目下载到我的文档目录并使用 URL 通过AVAudioPlayer 播放文件。我切换到AVPlayer,所以我可以流式传输音频而不是下载它们。我看到 URL 被成功获取,但是一旦我尝试播放它们,我就没有音频。下面是我正在获取的 URL 示例:
/Users/ellie/Desktop/ellie/sound/uploads/ellie1/Track5.m4a
var player: AVPlayer!
var fetchedURL: NSURL?
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//I left out the fetching process
self.fetchedURL = NSURL(string:parseString!)
print("fetchedURL is \(self.fetchedURL!)")
self.playCell()
}
func playCell() {
let audioSession: AVAudioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(AVAudioSessionCategoryPlayback)
} catch _ {
}
do {
try audioSession.setActive(true)
} catch _ {
}
print("fetchedURL is \(self.fetchedURL!)")
player = AVPlayer(URL:self.fetchedURL!)
player.play()
}
【问题讨论】:
-
“我切换到 AVPlayer,这样我就可以流式传输音频而不是下载它们了”直播网址在哪里? /Users/ellie/Desktop/ellie/sound/uploads/ellie1/Track5.m4a 这个网址看起来不像其他任何人都可以帮助您。
-
NSURL(string:) 仅用于网络链接。对于本地资源路径,您需要使用 NSURL(fileURLWithPath:) developer.apple.com/library/mac/documentation/Cocoa/Reference/…:
-
你为什么不直接使用try?或者试试!而不是“尝试 catch_”
-
我的后端都是本地的,但我认为既然我是从服务器访问文件,我仍然必须将 Url 视为 Web 链接