У нас есть аудиопотоки Shoutcast/Icecast. Я хотел бы иметь возможность предоставить ссылку, такую как mobiledroid.php, на нашем веб-сайте, которая будет открываться с помощью проигрывателя по умолчанию. Я видел это на другом сайте, поэтому знаю, что это возможно.
Я предполагаю, что он использует заголовки и потоки php через файл php в качестве потока?
Используя инструкции Брэда, андроид фактически дает возможность открывать звуковой проигрыватель. Хороший.
Так же играет на WMP через ПК но не на андроиде как играет по ссылке выше
header("Content-type: audio/mpeg");
header("Transfer-Encoding: chunked");
header("Connection: close");
$sock = fsockopen($streamname,$port); //$streamname is the IP
fputs($sock, "GET $path HTTP/1.0\r\n"); //path in my case is /;stream.mp3
fputs($sock, "Host: $ip\r\n");
fputs($sock, "User-Agent: WinampMPEG/2.8\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "Icy-MetaData:1\r\n");
fputs($sock, "Connection: close\r\n\r\n");
fpassthru($sock);
fclose($sock);
На андроиде пишет Извините, этот плеер не поддерживает данный тип аудиофайла
Обновление 2:
Удаление "Transfer-Encoding"
будет воспроизводиться на Android, но, как обычно, потребуется много времени, чтобы начать трансляцию со статусом «Подготовка» из-за того, что трансляция не имеет Content-Length.
header("Transfer-Encoding: none");
также удалено из приведенного выше кода:
Цитирую Бред:
В Android 2.3 и более поздних версиях есть проблема с параметром Transfer-Encoding, равным none. Удаление этого жестко установленного заголовка возвращает поток обратно в режим кодирования передачи по частям. Это отлично работает для Android 2.3+. Первоначально я отключил кодирование по частям, поскольку VLC его не поддерживает. Также кажется, что Android 2.2 и старше не поддерживает кодирование по частям.
Отметим здесь, что, хотя это работает на Android, для начала большинства прямых трансляций потребуется ужасно много времени.