Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AVPlayer fails to play video sometimes

AVPlayer failed to play video

I'm having grid of videos, AVPlayer sometimes fail to play video and showing this disabled icon with following error,

Domain=AVFoundationErrorDomain Code=-11850 "Operation Stopped" UserInfo={NSUnderlyingError=0x7f927ede4210
{Error Domain=NSOSStatusErrorDomain Code=-12939 "(null)"}
, NSLocalizedFailureReason=The server is not correctly configured., NSLocalizedDescription=Operation Stopped})

but same video getting played later on, so it is random issue. Any help on what's going wrong?

like image 598
BaSha Avatar asked Nov 20 '15 09:11

BaSha


1 Answers

Search Error

I believe there are a lot of people, like me, are looking for the solution of this problem.

I spent a whole afternoon's time, finally solved the problem.

On the question, an error occurred when the video starts playing.

such as:

Domain=AVFoundationErrorDomain Code=-11850 "Operation Stopped"

then I search this error number, and find it:

AVErrorServerIncorrectlyConfigured = -11850

In Apple's Document, I find some information about this error.

The HTTP server sending the media resource is not configured as expected. This might mean that the server does not support byte range requests.

Find Error

So, we should understand that this is a server problem.

Now, we play a video, and grab all http request for analysis.

Will find that AVPlayerItem sends an HTTP request.

when AVPlayerItem receive a video URL , it do the following task:

  1. Send a bytes request HTTP Request, and range = 0 -1
  2. If the response code is 206 and return 1 bytes data, It do the 3th task, if not, AVErrorServerIncorrectlyConfigured error occurred.
  3. continue send other HTTP Request, to download segment of All duration. and the response of VideoData code must be 206

In my situation , when send range[0-1] HTTP request, the server side give me a 200 OK response, So error occurred.

Result

So, you need to ask your server engineer to detect all response who return.

I wish it could help you.

like image 169
charvel Avatar answered Sep 29 '22 23:09

charvel