2017-08-02 4 views
0

テンポラリディレクトリに格納されたビデオを連続して再生する必要があります。テンポラリビデオをロードして再生する

func setVideo(url vid: String!) { 

    let directory = NSTemporaryDirectory() 

    let tempURL = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("tempMovie\(Date().timeIntervalSince1970)").appendingPathExtension("mp4") 

    let tempFile = NSURL.fileURL(withPathComponents: [directory]) 


    let file = vid.components(separatedBy: ".") 

    guard let path = Bundle.main.path(forResource: "\(tempURL)", ofType:file[2]) else { 
     debugPrint("\(file.joined(separator: ".")) not found with path: \(file[0] + "." + file[1])") 
     return 
    } 
    let player = AVPlayer(url: URL(fileURLWithPath: path)) 

    let playerLayer = AVPlayerLayer(player: player) 
    playerLayer.frame = self.view.bounds 
    self.videoView.layer.addSublayer(playerLayer) 
    player.play() 


    NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: self.player.currentItem, queue: nil, using: { (_) in 
     DispatchQueue.main.async { 
      self.player?.seek(to: kCMTimeZero) 
      self.player?.play() 
     } 
    }) 

} 

ビデオの場所とファイルのURLは次のとおりです。

file:///private/var/mobile/Containers/Data/Application/E7D12401-F147-4905-83BE-72909F91E004/tmp/tempMovie1501672791.33525.mp4 

連続ループ部分は、しかし、私は選手の内側にロードするために一時保存された映像を得ることができないよう、前のプロジェクトから動作します。私は手動でtempディレクトリを取得しようとしましたが、動作しませんでした。

答えて

1

ビデオをtmpからDocumentsディレクトリに移動すると私の仕事に役立ちました。

これは、あなたがそれを行う方法です。

let documentsDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! 

    let destinationURL = documentsDirectoryURL.appendingPathComponent("filename.fileExtension") 

     do { 

      try FileManager.default.moveItem(at: previousTempLocation, to: destinationURL) 

     } catch let error as NSError { print(error.localizedDescription)} 

    let player = AVPlayer(url: destinationURL)  

Appleはこの

tmpディレクトリ/にアプリの起動の間持続 する必要はありません一時ファイルを書き込むために、このディレクトリを使用しますと言います。あなたのアプリは不要になったらこのディレクトリからファイル を削除する必要があります。ただし、アプリが実行されていないときに システムがこのディレクトリをパージすることがあります。

Appleはまた、/ドキュメント内のユーザデータを入れて、ユーザデータ

のためにこれをお勧めします。ユーザーデータには通常、ユーザーに公開する可能性のあるファイル (ユーザー に作成、インポート、削除、編集を希望するファイル)が含まれます。ビデオやオーディオアプリには、ユーザーが後で視聴するためにダウンロードしたファイル も含まれます。

関連する問題