私はボタンをクリックして私の電話にビデオをダウンロードしようとしています。iOSのビデオロケールをダウンロードしようswift
I「次を使用してメートル:任意の成功なし
@IBAction func startDownload(_ sender: AnyObject) {
let videoImageUrl = "http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4"
dispatch_async.global(DispatchQueue.(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
let url = NSURL(string: videoImageUrl);
let urlData = NSData(contentsOfURL: url! as URL);
if(urlData != nil)
{
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .userDomainMask, true)[0];
let filePath="\(documentsPath)/tempFile.mp4";
dispatch_async(DispatchQueue.main, {
urlData?.writeToFile(filePath, atomically: true);
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: filePath))
}) { completed, error in
if completed {
print("Video is saved!")
}
}
})
}
})
}
私は 'タイプの引数リスト(INT、INT)と 'グローバル' を呼び出すことはできません' を有するよ
PHPhotoLIbraryとPHAssetChangeRequestためと未解決の識別子
は誰がどのようにこの仕事ができる知っているだろうしていますか?
どうもありがとう:)
- 編集 - あなたのコードと間違っていくつかのものがあります
@IBAction func startDownload(_ sender: UIButton) {
let videoImageUrl = "https://my-video.mp4"
DispatchQueue.global(qos: .default).async {
let url = NSURL(string: videoImageUrl);
let urlData = NSData(contentsOf: url! as URL);
if(urlData != nil)
{
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0];
let filePath="\(documentsPath)/tempFile.mp4";
DispatchQueue.main.async {
urlData?.write(toFile: filePath, atomically: true);
PHPhotoLibrary.shared().performChanges({
PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: NSURL(fileURLWithPath: filePath) as URL)
}) { completed, error in
if completed {
print("Video is saved!")
}
}
}
}
}
}
これはSwift 2かSwift 3ですか?それは2つの組み合わせのように見えます... – deadbeef
私はそれをswift3で動作させようとしています、私はswift2からコードを元々持っています..... – tibewww
http://stackoverflow.com/a/35510812/2303865 –