2015-06-01 3 views
1

У меня есть аудиофайл, загруженный с сервера в каталог моих документов. Я пытаюсь играть так же, используя AVPlayer в быстром, но по какой-то причине не могу этого сделать. Ниже приведен весь мой код. Если заменить localAudioPath с onlineResource он играет хорошоAVPlayer воспроизводит онлайн-ресурс, но не тот же загруженный ресурс

import UIKit 
import AVFoundation 

class AudioController: UIViewController { 

    var player : AVPlayer! 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    } 

    @IBAction func playAudio(sender: AnyObject) { 
    var name = "bell.mp3" 
    var docs = NSSearchPathForDirectoriesInDomains(directory, .UserDomainMask, true)[0] as! String 
    var localAudioPath = docs.stringByAppendingPathComponent(name) 
    var onlineResource = "path/to/online/bell.mp3" 

    if NSFileManager.defaultManager().fileExistsAtPath(localAudioPath!) { 
     let playerItem = AVPlayerItem(URL: NSURL(string: localAudioPath!)!) 
     player = AVPlayer(playerItem: playerItem) 
     player.play() 

    } else { 
     /* Alamo fire code to download file to docs directory*/ 
     let destination = Request.suggestedDownloadDestination(directory: .DocumentDirectory, domain: .UserDomainMask) 

     Alamofire.download(.GET, NSURL(string: audio.audioUrl)!.http, destination) 
     .progress { (bytesRead, totalBytesRead, totalBytesExpectedToRead) in 
     println(totalBytesRead) 
     } 
     .response { (request, response, _, error) in 
     println(response) 
     } 
    } 
    } 

} 

Может кто-нибудь сказать мне, если это вообще возможно, чтобы играть локальные файлы с помощью AVPlayer?

+1

http://stackoverflow.com/a/30471885/2303865 –

+0

@LeoDabus Спасибо. Это решает мою проблему. :) –

+0

добро пожаловать –

ответ

1

Вы должны использовать fileURLWithPath: для предоставления правильного URL-адреса, и он должен хорошо воспроизводить локальный URL-адрес.

let playerItem = AVPlayerItem(URL: NSURL(fileURLWithPath: localAudioPath!)!)