HTTP Streamin Server работает на iPhone, не работает на iPad и Safari

Я пытаюсь выяснить HTTP Streaming Server. У меня есть тестовый плейлист, работающий на Apache22, с использованием аудиофайлов mp3:

http://atkin.identry.com/mp3/

Этот плейлист работает на моем iPhone 4s, но не на iPad, хотя на нем установлена ​​та же версия iOS 5, или Safari на моем iMac с Lion.

Для iPad журнал Apache показывает получение плейлиста, но больше ничего:

75.127.142.66 - - [30/Dec/2011:13:24:19 -0500] "GET /mp3/playlist.m3u8 HTTP/1.1" 304 - "-" "AppleCoreMedia/1.0.0.9A405 (iPad; U; CPU OS 5_0_1 like Mac OS X; en_us)"
75.127.142.66 - - [30/Dec/2011:13:24:20 -0500] "GET /mp3/playlist.m3u8 HTTP/1.1" 206 126 "-" "AppleCoreMedia/1.0.0.9A405 (iPad; U; CPU OS 5_0_1 like Mac OS X; en_us)"

На iPhone извлекается плейлист, а затем аудиофайлы, как и следовало ожидать:

75.127.142.66 - - [30/Dec/2011:13:26:31 -0500] "GET /mp3/playlist.m3u8 HTTP/1.1" 206 2 "-" "AppleCoreMedia/1.0.0.9A405 (iPhone; U; CPU OS 5_0_1 like Mac OS X; en_us)"
75.127.142.66 - - [30/Dec/2011:13:26:31 -0500] "GET /mp3/playlist.m3u8 HTTP/1.1" 206 126 "-" "AppleCoreMedia/1.0.0.9A405 (iPhone; U; CPU OS 5_0_1 like Mac OS X; en_us)"
75.127.142.66 - - [30/Dec/2011:13:26:35 -0500] "GET /mp3/playlist.m3u8 HTTP/1.1" 304 - "-" "AppleCoreMedia/1.0.0.9A405 (iPhone; U; CPU OS 5_0_1 like Mac OS X; en_us)"
75.127.142.66 - - [30/Dec/2011:13:26:35 -0500] "GET /mp3/playlist.m3u8 HTTP/1.1" 206 126 "-" "AppleCoreMedia/1.0.0.9A405 (iPhone; U; CPU OS 5_0_1 like Mac OS X; en_us)"
75.127.142.66 - - [30/Dec/2011:13:26:35 -0500] "GET /mp3/playlist.m3u8 HTTP/1.1" 200 126 "-" "AppleCoreMedia/1.0.0.9A405 (iPhone; U; CPU OS 5_0_1 like Mac OS X; en_us)"
75.127.142.66 - - [30/Dec/2011:13:26:35 -0500] "GET /mp3/1.mp3 HTTP/1.1" 200 366464 "-" "AppleCoreMedia/1.0.0.9A405 (iPhone; U; CPU OS 5_0_1 like Mac OS X; en_us)"
75.127.142.66 - - [30/Dec/2011:13:26:36 -0500] "GET /mp3/2.mp3 HTTP/1.1" 200 375865 "-" "AppleCoreMedia/1.0.0.9A405 (iPhone; U; CPU OS 5_0_1 like Mac OS X; en_us)"
75.127.142.66 - - [30/Dec/2011:13:26:36 -0500] "GET /mp3/3.mp3 HTTP/1.1" 200 316303 "-" "AppleCoreMedia/1.0.0.9A405 (iPhone; U; CPU OS 5_0_1 like Mac OS X; en_us)"

Для Safari извлекаются список воспроизведения и аудиофайлы, как и для iPhone, но на веб-странице ничего не отображается и звук не воспроизводится.

Вот плейлист:

#EXTM3U
#EXT-X-TARGETDURATION:44
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:15,
1.mp3
#EXTINF:16,
2.mp3
#EXTINF:13,
3.mp3
#EXT-X-ENDLIST

Довольно просто ... трудно понять, где я мог ошибиться, но, очевидно, я ошибся.

Я знаю, что это довольно эзотерическая тема, но если у кого-то есть идея, я бы хотел ее услышать.

Спасибо


person John    schedule 30.12.2011    source источник
comment
Действительно звучит странно. Как только что-то подобное произойдет, я, вероятно, пойду и попытаюсь перезагрузить неисправное устройство.   -  person Till    schedule 30.12.2011
comment
Нет... к сожалению, без разницы.   -  person John    schedule 30.12.2011
comment
Только что попробовал на разных iPad 2 и тоже самое.   -  person John    schedule 30.12.2011
comment
Моя цель — использовать HTTP Streaming в приложении, так что это всего лишь тест, но я ожидал, что он будет работать на iPad и Safari.   -  person John    schedule 30.12.2011
comment
Вы правы в своих ожиданиях, и было бы неплохо протестировать его как в MobilSafari, так и в вашем собственном приложении/коде.   -  person Till    schedule 30.12.2011
comment
Хммм... только что попробовал новый плейлист с файлами m4a (записанными в приложении в формате kAudioFormatMPEG4AAC). Список воспроизведения работает с одним аудиофайлом в списке воспроизведения, но если в списке воспроизведения более одного аудиофайла, он не будет воспроизводиться. Тот же плейлист, что и выше, с 1.m4a, 2.m4a и т. д. Определенно что-то не так...   -  person John    schedule 30.12.2011


Ответы (1)


Хорошо, я понял это. Это было не в файле списка воспроизведения или аудиофайлах, а в индексном файле, который, как я полагал, был настолько простым, что не стоил его перечисления.

Проблема заключалась в теге video. Я сделал ошибку, воспользовавшись примером из какого-то веб-учебника, в котором тег настроен следующим образом:

  <video src="./playlist.m3u8" height="300" width="400" ></video>

Это не работало на iPad или Safari. Изменение его на это заставило его работать на iPad, но не в Safari:

  <video src="playlist.m3u8" height="300" width="400" ></video>

Насколько мне известно, эти URL-адреса эквивалентны, но...

Наконец, изменение его на это заставило его работать на всех платформах:

 <video src="playlist.m3u8" width="320" height="40" controls="controls"     autoplay="autoplay" >Your browser does not support the video tag</video>

Теперь мне нужно, чтобы файлы m4a воспроизводились...

person John    schedule 30.12.2011
comment
Ура! Также работает с файлами .m4a, если они являются «настоящими» файлами m4a. - person John; 31.12.2011