2016-04-19 22 views
1

私はこのパスに記録されたビデオを再生しようとしています。しかし、私はこの経路からビデオを再生することはできません。私は何をすべきか?AvPlayerがカスタムパスからビデオを再生できない

let pathMovie = (NSHomeDirectory() as NSString).stringByAppendingPathComponent("Documents/Movie.mp4") 

     let fileUrl = NSURL(fileURLWithPath: pathMovie) 
     self.videoFrame = view.frame 
     self.fillMode = .ResizeAspectFill 
     self.alwaysRepeat = true 
     self.sound = true 
     self.startTime = 0.0 
     self.alpha = 1 
     self.backgroundColor = UIColor.blackColor() 
     self.contentURL = fileUrl 

これは私が得るエラーです。

失敗しました:オプション(エラードメイン= AVFoundationErrorDomainコード= -11800 "操作を完了できませんでした" のUserInfoは= {NSLocalizedFailureReasonが不明なエラーが、NSLocalizedDescriptionは、操作を完了できませんでしたNSURLを=(-12893)が発生しました= = file:///var/mobile/Containers/Data/Application/.....-...-...-....-..../Documents/Movie.mp4、NSUnderlyingError = 0x150a38e80 {エラードメイン= NSOSStatusErrorDomainコード= -12893 "(ヌル)"}})

+0

4あなたはこのファイルが存在しますか? – Avt

+0

はいデバイスの画面を使用してファイルを見ました –

+0

ムービーコーデックがH264/AACオーディオであることを確認してください –

答えて

0

次の2つのメソッドを追加することによって、カスタムパスからビデオを再生することができます:

注:あなたを渡してください。 getCustomVideoPathメソッドの引数としてのビデオ名。スウィフト

func getCustomVideoPath(name: String) -> String { 
    let strDocumentDirectory = self.getDocumentDirectoryPath() 
    return "\(strDocumentDirectory)/\(name).mp4" 
} 

func getDocumentDirectoryPath() -> String { 
    let arrPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 
    return arrPaths[0] 
} 

//---------------------------------------------------------------- 

func playCustomVideo() { 
    let strVideoPath = self.getCustomVideoPath(name:"Movie") 
    let urlVideoPath = URL(fileURLWithPath: strVideoPath) 
    let newPlayerItem = AVPlayerItem(url: urlVideoPath) 
    self.avPlayer = AVPlayer(playerItem: newPlayerItem) 
    avPlayerController.player = self.avPlayer 
    self.avPlayer?.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions(rawValue: 0), context: MPPlayableContentManagerContext.observationInfo()) 
    self.present(avPlayerController, animated: true) { 
     self.avPlayer?.play() 
    } 
} 
+0

ちょっと@ムラットカヤあなたは私の答えが役に立つのを見つけましたか? –

関連する問題