S3バケットにアップロードされたビデオ、iOSアプリのURLで再生されない


8

(AWS SDKを使用せずに)s3サービスへの投稿リクエストを介してS3バケットにビデオと画像をアップロードしています。画像と動画が正常にアップロードされました。しかし、ビデオはそのURLから再生されていません。

以下は、コンソールに出力されるエラーです。

エラードメイン= NSURLErrorDomainコード= -999 "キャンセル" UserInfo = {NSErrorFailingURLStringKey = https:// s3url }

以下は、私が使用しているマルチパートリクエストのコードです。

    Alamofire.upload(multipartFormData: { (multiPart) in
        if parameters != nil {
            for (key, value) in parameters! {
                multiPart.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
            }
        }
        print("mime type ==================>\(mimeType)")
        //mime type for video: "video/mp4"
        multiPart.append(file, withName: key, fileName: fileName, mimeType: mimeType)
    }, usingThreshold: 10000, to: url, method: .post, headers: headers) { (encodingResult) in
        switch encodingResult {
        case .success(let upload, _, _):
            upload.responseString(completionHandler: { (response) in
                print("response string")
                print(response)
            })
            upload.responseJSON { response in
                print(response)
                print(response.result.isSuccess)
            }
        case .failure(let error):
            failure(self.parseError(error: error))
            break
        }
    }

ビデオファイルは公開されていますか?あなたがブラウザにURLを入れるとそれは開きますか?
スクリプト対応

@Scriptableはい、すべてのファイルにパブリックアクセスがあります。ブラウザでURLを開くと、ファイルがダウンロードされ、ファイルに.mov拡張子を追加すると、Quick timeプレーヤーで再生されます。
SV

プレイしようとした場所にコードを表示できますか?
スクリプト対応

サードパーティのライブラリVGPlayerで再生しています。しかし、AVPlayerControllerでも試してみましたが、機能しません。let player = AVPlayer(url:videoURL)let playerViewController = AVPlayerViewController()playerViewController.player = player self.present(playerViewController、animated:true){playerViewController.player!.play()}
SV

回答:


4

これは、動画のアップロード中に、動画のContent-Typeが設定されていなかったため、動画が再生されなかったためです。form-dataとPolicyでContent-Typeを設定すると、ビデオが正常にアップロードおよび再生されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.