HTTP Streamin Server работает на iPhone, не работает на iPad и Safari - PullRequest
2 голосов
/ 30 декабря 2011

Я пытаюсь выяснить 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

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

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

Спасибо

1 Ответ

0 голосов
/ 31 декабря 2011

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

Проблема была в теге 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 ...

...