Пиша приложение за подкаст и искам потребителят да възпроизведе локалния файл, който е изтеглил, ако съществува (вместо да го предава поточно). Стриймингът работи добре, но ако локалният файл бъде намерен, той не се възпроизвежда от AVPlayer (това всъщност не е вярно за един от около 5 файла по причини извън мен - докосването на един подкаст ще се възпроизведе локално (в самолет съм режим за проверка).
Вярвам, че това е еквивалентът на Swift на този въпрос, но не успях да внедря това решение в Swift.
Ето кода:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var theURL = posts.objectAtIndex(indexPath.row).valueForKey("enclosure") as? String
var theMp3Filename = theURL!.lastPathComponent
for i in downloadedList {
if i as! String == theMp3Filename {
// If we've d/l'ed the mp3, insert the local path
theURL = documentsDirectory().stringByAppendingPathComponent(theMp3Filename)
var path: NSURL = NSURL.fileURLWithPath(theURL!)!
player = AVPlayer(URL: path)
player.play()
} else {
let podcastEpisode = AVPlayerItem(URL: NSURL(string: theURL!))
player = AVPlayer(playerItem: podcastEpisode)
player.play()
}
}
}
downloadedList
е просто масив, който генерирам с изтеглените имена на файлове. Влизам в локалното състояние и пътят изглежда правилен, но AVPlayer обикновено не работи.
Всякакви насоки ще бъдат оценени.
NSURL(fileURLWithPath: "path")
, наистина работи. - person cmashinho   schedule 01.05.2015path
съществува. - person allocate   schedule 01.05.2015