PDA

Просмотр полной версии : Проблема с потоковым радио


Trodes
05.02.2009, 05:40
Всем привет! Такая проблема: разместил на своем сайте простенький флэш-плеер со следующим кодом:
var mySound : Sound = new Sound();

bt_play.onRelease = function () {
mySound.loadSound("http://stream.comchatka.ru:8000/drumandbass",true);
mySound.start();
}
bt_stop.onRelease = function () {
mySound.stop();
}

Под браузерами Opera и Mozilla работает отлично, без каких-либо нареканий, а вот под Explorer-ом после того, как нажимаешь кнопку play, мгновенно вылетает следующая ошибка:
http://www.troderstro.com/Error.jpg
после чего браузер просто слетает. И дело здесь не в моей личной версии браузера, я обзвонил около десятка друзей, у них та же самая петрушка - ошибка под Explorer-ом
Поможите, кто чем может!

amexdesign
05.02.2009, 21:04
это происходит по следующей причине. Потоковое радио(MP3 Webradio Stream) это ни что иное, как "бесконечный" MP3-файл. Explorer блокирует соединение флэша с таким MP3-Audio-Stream. Почему? этот вопрос уместно задавать людишкам из Microsoft...

но это можно обойти с помощью ПХП, который выдаёт фиктивную длину MP3-Audio-Streamа. Примерно вот так(назовём файл Stream.php):
<?php

// Данные соединения со Streamом

$streamname = “stream.comchatka.ru“; // Server (Host)
$port = “8000“; // Порт Streamа
$path = “/drumandbass”; // Дополнения к Streamу

$stream_quality=192; // Kbit/s
$buffer_time=15; // Число buffer в минутах

$stream_quality_kbytes=$stream_quality/8;
$stream_quality_kbytes_per_minute=$stream_quality*60;

$content_length=$buffer_time*1024*$stream_quality_kbytes_per_minute;

$length_header=”Content-length: “.$content_length;

header(”Content-type: audio/mpeg”);
header($length_header);
$sock = fsockopen($streamname,$port);

fputs($sock, “GET $path HTTP/1.0\r\n”);
fputs($sock, “Host: $streamname\r\n”);
fputs($sock, “User-Agent: WinampMPEG/2.8\r\n”);
fputs($sock, “Accept: */*\r\n”);
fputs($sock, “Icy-MetaData:0\r\n”);
fputs($sock, “Connection: close\r\n\r\n”);

fpassthru($sock);
fclose($sock);

?>
Теперь остаётся только во флэше вызывать этот файл.:
bt_play.onRelease = function () {
mySound = new Sound(this);
mySound.loadSound("http://www.ваша_страница.ru/Stream.php", true);
mySound.start();
}

Trodes
05.02.2009, 23:11
Всё сделал как написано, но к сожалению, не работает вообще, ни где.

amexdesign
06.02.2009, 01:23
какой плэер открывался в моциле, когда вы нажимали на кнопку bt_play в вашей первой версии?

Trodes
06.02.2009, 01:52
простите, я не очень силен во флеш, можно разьяснить ваш вопрос?

Компилирую свой фаил под 9 - ый плеер.

Добавлено через 5 минут

Добавлено через 16 минут