MPMoviePlayerController переподключение несколько раз - PullRequest
4 голосов
/ 08 октября 2011

У меня работает простой HTTP-сервер, который в значительной степени просто обслуживает файл MP3 порциями одинакового размера. Я пишу приложение для iOS (для тестирования), которое в основном берет URL и передает файл через MPMovieController. Вот мой пример кода:

MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] init];
[mp setMovieSourceType:MPMovieSourceTypeStreaming];
mp.contentURL = [NSURL URLWithString:@"http://127.0.0.1:8080"];
[mp play];

Это работает. НО: на моем http-сервере я вижу несколько соединений (первое разрывается сразу, второе обычно заканчивается до конца, хотя иногда и третье подключение).

Я знаю, что это не проблема сервера, так как, когда я делаю это:

NSData *myData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://127.0.0.1:8080"]];

... тогда есть только 1 соединение, которое завершает чтение и отключается.

Вопрос в том, почему MPMoviePlayerController должен устанавливать и разрывать эти соединения перед завершением чтения файла, почему он просто не ждет, пока в сокет будет записано больше данных? Мне не удалось найти соответствующие документы, которые бы объяснили это: (

P.S. Если вам интересно, зачем мне это нужно, вот краткое объяснение: я пытаюсь эмулировать реальные сетевые сценарии, где байты принимаются MPMovieController порциями с небольшими задержками случайной длины между

1 Ответ

0 голосов
/ 14 октября 2011

Вам нужно изменить свой сервер и добавить поддержку HTTP 206 Partial Content запросов / ответов.iOS запрашивает данные фильма по HTTP таким образом.

...