Saving buffer data of AVPlayer

后端 未结 4 1326
耶瑟儿~
耶瑟儿~ 2020-12-08 05:33

I am playing audio from my server using AVPlayer in my application. Now I want that when it completely buffer the audio then I can save that data in the application to play

4条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-08 06:09

    You could supply a resourceLoader delegate to take over control of the resource loading process from AVPlayer and then supply it the data as and when it requests and becomes available. The resource loader is a property on AVURLAsset. I've documented a full solution on my blog but the main idea is to switch the protocol of your URL to something custom so AVURLAsset's resource loader requires your application's assistance in loading that URL. Then when you get the AVAssetResourceLoaderDelegate callbacks, start downloading the file and try to respond to the pending requests received from those delegate callbacks as and when you have data. This will allow progressive loading/playback of the content without having to run a full blown HTTP server in your app or resorting to other complicated solutions.

提交回复
热议问题