El video, cargado en el cubo S3, no se reproduce a través de la URL en la aplicación iOS

8

Estoy cargando los videos e imágenes en el bucket de S3 a través de la solicitud posterior al servicio de s3 (sin usar AWS SDK). Las imágenes y videos se cargan correctamente. Pero el video no se reproduce desde su url.

A continuación se muestra el error que se imprime en la consola:

Error Domain = NSURLErrorDomain Code = -999 "cancelado" UserInfo = {NSErrorFailingURLStringKey = https: // s3url }

El siguiente es el código para la solicitud multiparte que estoy 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
fuente
¿Los archivos de video están disponibles públicamente? si pones la URL en el navegador, ¿se abre?
Scriptable
@Scriptable sí, todos los archivos tienen acceso público. Si abro la URL en el navegador, el archivo se está descargando y luego, después de agregar la extensión .mov al archivo, se reproduce en el reproductor Quick Time.
SV
¿puedes mostrar el código donde intentas jugarlo?
Programable el
Lo estoy jugando a través de una biblioteca de terceros VGPlayer. Pero también lo probé en AVPlayerController, no funciona. let player = AVPlayer (url: videoURL) let playerViewController = AVPlayerViewController () playerViewController.player = player self.present (playerViewController, animado: verdadero) {playerViewController.player! .play ()}
SV

Respuestas:

4

La razón de esto fue que mientras se cargaba el video, el Tipo de contenido para el video no se configuraba debido a que el video no se estaba reproduciendo. Al establecer el Tipo de contenido en los datos del formulario y en la Política, el video se cargó y se reprodujo correctamente.

SV
fuente