Vídeo carregado no bucket do S3, que não é reproduzido através do URL no aplicativo iOS

8

Estou carregando os vídeos e imagens no bucket do S3 por meio da solicitação de postagem no serviço s3 (sem usar o AWS SDK). As imagens e vídeos foram enviados com sucesso. Mas o vídeo não está sendo reproduzido pelo URL.

Abaixo está o erro impresso no console:

Domínio de erro = Código NSURLErrorDomain = -999 "cancelado" UserInfo = {NSErrorFailingURLStringKey = https: // s3url }

A seguir, está o código da solicitação de várias partes que estou usando:

    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
        }
    }
SV
fonte
Os arquivos de vídeo estão disponíveis publicamente? se você colocar o URL no navegador, ele abre?
Scriptable
@Scriptable sim, todos os arquivos têm acesso público. Se eu abrir o URL no navegador, o arquivo será baixado e, depois de adicionar a extensão .mov, ele será reproduzido no Quick time player.
SV
você pode mostrar o código onde tenta reproduzi-lo?
Scriptable
Estou reproduzindo-o através de uma biblioteca de terceiros do VGPlayer. Mas eu também tentei no AVPlayerController, ele não funciona. deixe player = AVPlayer (url: videoURL) deixe playerViewController = AVPlayerViewController () playerViewController.player = jogador self.present (playerViewController, animado: true) {playerViewController.player! .play ()}
SV

Respostas:

4

O motivo disso foi que, durante o upload do vídeo, o Tipo de Conteúdo do vídeo não estava sendo definido devido ao qual o vídeo não estava sendo reproduzido. Definindo o Tipo de Conteúdo nos dados do formulário e na Política, o vídeo foi carregado e reproduzido com êxito.

SV
fonte