Невозможно воспроизвести видео в avplayer с пользовательским запросом - PullRequest
0 голосов
/ 30 мая 2018

Здравствуйте, я пытаюсь отправить пользовательский заголовок с запросом avplayer, поэтому я добавил пользовательскую схему, такую ​​как

let asset = AVURLAsset(url: URL(string: "mycustomscheme://tungsten.aaplimg.com/VOD")!, options: nil)

, потому что этот запрос не выполняется, и вызывается метод делегата shouldWaitForLoadingOfRequestedResource.

В shouldWaitForLoadingOfRequestedResource я делаю пользовательский запрос и получаю данные с сервера, но avplayer все еще не воспроизводит файл.Вот мой код:

func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool {

    resourceLoader.delegateQueue?.async {

        var request: URLRequest? = loadingRequest.request
        request?.url = self.url

        // Add header
        request?.setValue(HeadersForWS.DeviceOS, forHTTPHeaderField: HeadersForWS.DeviceType)
        request?.setValue(Utility.getUserId(), forHTTPHeaderField:HeadersForWS.UserId )

        if let aRequest = request {

            let session = URLSession(configuration: .default, delegate: self, delegateQueue: nil)

            session.dataTask(with: aRequest as URLRequest) { (data, response, error) in

                guard let data = data else {
                    try? loadingRequest.finishLoading()
                    return
                }


                loadingRequest.dataRequest?.respond(with: data)
                loadingRequest.finishLoading()

                }.resume()
        }

    }

    return true

}

Если я сохраняю полученные данные в файл sample.mp4 и извлекаю файл из приложения, а затем пытаюсь воспроизвести его, значит, воспроизведение означает, что я правильно получаю видеоданные.В чем может быть проблема здесь ??

Заранее спасибо

...