IE MP3 Streaming. Прекрасно работает в Firefox, но не в IE и Chrome. Проблемы с заголовком - PullRequest
0 голосов
/ 23 июня 2011

У меня есть небольшая проблема с потоковой передачей MP3 в IE и Chrome (она отлично работает в Firefox)

У нас есть сервер голосовой почты. Веб-приложение выполняет потоковую передачу файла wav, преобразовывая его на лету в MP3 (используя lame, не очень хорошо, но мы должны сделать это именно так из-за ограничений звездочки), а затем выводит содержимое в виде двоичного потока.

header("Content-Type: audio/mpeg");
header("Content-Transfer-Encoding: binary");    
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');    
$file->readFromInbox($f);

Используемый нами аудиоплеер MP3: http://wpaudioplayer.com/standalone/

Если размер файла (я думаю) меньше 100 КБ, аудиопотоки в порядке, а строка состояния аудиопроигрывателя MP3 flash обновляется (секунды увеличиваются, а полоса перемещается).

Однако, если размер файла превышает 100 КБ, возникает проблема. Звук воспроизводится в IE7 / 8 и Chrome, но строка состояния не меняется. Он продолжает говорить «Соединение ...», хотя звук воспроизводится. Одд.

В Firefox у меня нет проблем.

В чем может быть проблема? Почему у Firefox нет проблем, кроме IE и Chrome? Нужно ли указывать размер передаваемого файла? (Это невозможно, поскольку файл конвертируется на лету и выводится сразу из-за команды passthru)

Спасибо, ребята!

1 Ответ

0 голосов
/ 23 июня 2011

Сначала преобразуйте файл и сохраните его как временный файл. Затем отправьте этот файл вместе с заголовком Content-Length.

Файл временного файла может быть создан с этим:

$tempfile = tempnam('/tmp','mp3')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...