0

デバイスのドキュメント ディレクトリにダウンロードされたビデオを再生しようとしています。どういうわけか、それは起こりません。私が得るのはこのシンボルだけです:

ここに画像の説明を入力

これが私のコードです:

let documentPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let videoFileUrl = URL(fileUrlWithPath: documentPath)
let videoFilePath = videoFileUrl.appendingPathComponent("somVideo.mp4").path
if FileManager.default.fileExists(atPath: videFilePath){
    let player = AVPlayer(url: URL(string: videoFilePath)!)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player
    self.present(playerViewController, animated: true) {
        playerViewController.player!.play()
    }
}
else {
    print("File doesn't exist")
}

ファイルはその場所に存在します-シミュレーターのドキュメントディレクトリを確認しました-elseステートメントは起動されません。コンソールには他に何も出力されません。

どんな助けでも大歓迎です。

4

1 に答える 1

3

OPが質問に編集した回答は次のとおりです(回答は回答である必要があるため、その後ロールバックされました)。OPが別の回答を投稿した場合、これを削除します。


同僚の助けを借りて、なんとか機能させることができました。誰かが興味を持っている場合の答えは次のとおりです。

let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
if let docDir : URL = urls.first {
    let videoUrl = docDir.appendingPathComponent("\(objectId).mp4")
    do {
        let videoExists : Bool = try videoUrl.checkResourceIsReachable()
        if videoExists {
            let player = AVPlayer(url: videoUrl)
            let playerController = AVPlayerViewController()
            playerController.player = player
            self.present(playerController, animated: true) {
                playerController.player!.play()
            }
        }
        else {
            print("Video doesn't exist")
        }
    }
    catch let error as NSError {
        print(error)
    }
}
于 2017-01-10T17:25:07.657 に答える