swift - 如何访问从URl下载的保存文件路径

标签 swift avplayer

我已使用此过程从链接下载文件。现在我想要访问此视频并使用 APPPlayer 播放的文件路径:

 @IBAction func btnplayClicked(sender: AnyObject) {

    let videoImageUrl = "https://devimages-cdn.apple.com/samplecode/avfoundationMedia/AVFoundationQueuePlayer_HLS2/master.m3u8"
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
                let url = NSURL(string: videoImageUrl);
                let urlData = NSData(contentsOfURL: url!);
                if(urlData != nil)
                {
                    let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0];
                    let filePath="\(documentsPath)/video.mp4";
                    dispatch_async(dispatch_get_main_queue(), {
                        urlData?.writeToFile(filePath, atomically: true);
                        PHPhotoLibrary.sharedPhotoLibrary().performChanges({
                            PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: filePath))
                        }) { completed, error in
                            if completed {
                                print("Video is saved!")
 if let path = NSBundle.mainBundle().pathForResource("video", ofType: ".mp4")
                                        {
                                            let apath = NSURL(fileURLWithPath: path)
                                            let video = AVPlayer(URL: apath)
                                            let videoPlayer = AVPlayerViewController()
                                            videoPlayer.player = video
                                           self.presentViewController(videoPlayer, animated: true, completion: {
                                                video.play()
                                            })
                                        }
                            }
                        }
                    })
                }
   })
}

视频已下载,我可以在图库中看到它。但是 AVPlayer 不播放视频。我在这里做错了什么......?

最佳答案

因为 iOS greek Greek 告诉你正在访问错误的路径,你可以用这种方法来做到这一点:

if completed {


dispatch_async(dispatch_get_main_queue(), {
                                        // Call UI related operations
let apath = NSURL(fileURLWithPath: filePath)
let video = AVPlayer(URL: apath)
let videoPlayer = AVPlayerViewController()
 videoPlayer.player = video
self.presentViewController(videoPlayer, animated: true, completion: {
 video.play()
 })
 })
}

关于swift - 如何访问从URl下载的保存文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48257050/

相关文章:

ios - 音量 slider 没有效果

ios - 使用 Swift AVPlayer 显示视频轨道的时间码

ios - 如何从锁定屏幕和控制中心隐藏 MPMediaItemPropertyPlaybackDuration slider ?

ios - 协议(protocol)委托(delegate)方法和 block 之间的连接区别

ios - 如何在 GameScene 之外创建更多的 SKScene

ios - 使用容器自动布局

ios - SWIFT:使用通过耳机插孔连接的外部设备的按钮清除 TextView

ios - 使用 AVPlayer、AVPlayerItem 和 AVPlayerAsset 有什么区别吗?

swift - #error in Swift(如何标记编译时错误)