2011-03-29 1 views
2

Я пытаюсь воспроизвести файл видео (mp4) с URL-адреса с MPMoviePlayer (например, http://localhost/api?file_id=2313mk), но не смог заставить его работать, задаваясь вопросом, есть ли какое-либо решение.MPMoviePlayer не может воспроизводить видеопоток с URL-адреса без расширения

Несколько тестов сделано, как показано ниже:
1) Play URL в браузере компьютера: УСПЕХ
2) Играть URL в Iphone (4.2+) браузер/MPMoviePlayer: FAILED
3) Скопировать файл и переименовать, а затем играть в iPhone браузер/MPMoviePlayer из нового URL с расширением (например: http://localhost/video.mp4): УСПЕХА
4) Проверьте заголовок для Content-Type (видео/mp4): СУЩЕСТВУЕТ

заголовки ответа для URL без расширения: (например: HTTP: // локальный/апи file_id = 2313mk)

 
HTTP/1.1 200 Download accepted 
Date: Tue, 29 Mar 2011 04:48:03 GMT 
Server: Apache 
Content-Transfer-Encoding: binary 
Content-Length: 24897567 
Keep-Alive: timeout=15, max=100 
Connection: Keep-Alive 
Content-Type: video/mp4 

заголовки ответа для URL с расширением (например, HTTP: //localhost/video.mp4)

 
HTTP/1.1 200 OK 
Date: Tue, 29 Mar 2011 04:11:19 GMT 
Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8l DAV/2 PHP/5.3.4 
Last-Modified: Fri, 18 Mar 2011 05:38:16 GMT 
Etag: "d1b78c-17be81f-49ebb2f458200" 
Accept-Ranges: bytes 
Content-Length: 24897567 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Content-Type: video/mp4 
+0

Это действительно работает в формате mp3, если URL-адрес сервера (например: http: // localhost/api? File_id = 2313mk) возвращает mp3 – alvinsj

ответ

0

Ваши результаты испытаний показывают, что "видео/mp4" MIME тип не распознается. Видео с расширением имени файла воспроизводится независимо от Content-Type, так как расширение «мов», как известно, принадлежит к файлу фильма:

http://developer.apple.com/library/ios/#documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/MediaLayer/MediaLayer.html#//apple_ref/doc/uid/TP40007898-CH9-SW6

Вы можете изменить Content-Type?

+0

Тип содержимого кажется правильным, но почему/что вы предлагаете изменить? – alvinsj

+0

Извините, я сделал только «скачать и воспроизвести» или потоковое видео HTTP. Первый работает на основе расширения имени файла, а второй работает после того, как сервер начинает отправлять правильные типы MIME. Не удалось выполнить динамическую загрузку (пока), но предположим, что я попробую «video/mpeg» или «video/quicktime». Изменить тип mime на стороне сервера, я имею в виду. – JOM