PDA

Просмотр полной версии : loadSound и crossdomain.xml


vengria
05.02.2008, 17:48
Всем привет! Вчера целый день рылся на форуме в поисках решения:
- интернет радио через флеш плеер, т.е.:
on (release) {
shoutcast = new Sound();
shoutcast.loadSound("http://217.113.53.246:8006",true);
}

я так ничего и не понял...

почему в Opera все работает и слушается, а в IE глухота.
Также вчера видел посты о crossdomain.xml, но к сожелению никакой конкретики!

сам фаил crossdomain.xml я уже разместил на сервере где радио, и саму флешку. В файле crossdomain.xml прописано сл.:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
<allow-access-from domain="*.radio.vengria.com:8006"/>
</cross-domain-policy>

Обьясните пожалуйста просто: что надо сделать для того, что бы флешка (плеер) проигрывал потоковое вещание НЕ только в Opera но и в IE тоже.

CorC
06.02.2008, 10:06
Если с Оперы идет, то crossdomain тут уже не при чем. Видимо какие то проблемы в интеграции ролика в ИЕ или в версии плеера.

etc
06.02.2008, 10:29
Файл crossdomain должен находиться по адресу http://217.113.53.246/crossdomain.xml
В описании allow-access-from порт не указывается, только хост. По вашей логике, флешки, лежащие на любом поддомене radio.vengria.com (только на поддоменах, не на самом radio.vengria.com) имеют право обращаться к 217.113.53.246.

CrazyFlasher
06.02.2008, 11:01
Если с Оперы идет, то crossdomain тут уже не при чем. Видимо какие то проблемы в интеграции ролика в ИЕ или в версии плеера.

отнюдь нет...опера более мягка в данном случае к политике безопасности

etc
06.02.2008, 12:43
Браузер не влияет на политику безопасности флеша.

CrazyFlasher
06.02.2008, 12:51
в таком случае как объяснить, что опера коннектилась к срим-потоку на другом сервере, а IE нет? :) (правда это было где-то в 2006) :) Если будет время, проверю как сейчас :)

P.S. http://nocrossdomain.com/ - интересая штуковина...кто-нить пробовал? (надеюсь, что не нарушаю никаких правил)

vengria
06.02.2008, 14:56
Файл crossdomain должен находиться по адресу http://217.113.53.246/crossdomain.xml
В описании allow-access-from порт не указывается, только хост. По вашей логике, флешки, лежащие на любом поддомене radio.vengria.com (только на поддоменах, не на самом radio.vengria.com) имеют право обращаться к 217.113.53.246.
отписал хостеру, щас попробуем! :)

vengria
07.02.2008, 17:13
НЕТ!
Ничего не получается! :(
Разместили фал сдесь http://217.113.53.246/crossdomain.xml прописали вроде все что надо.
Сами флешки размещены в 2 адресах:
http://www.radio.vengria.com/zene.swf
http://www.vengria.com/zene.swf

что еще не так? помогите!

etc
07.02.2008, 17:48
Попробуйте указать to-ports="*"
Кстати, для флешки с www.vengria.com не указано наличие доступа.

vengria
07.02.2008, 17:56
хорошо! мы укажем лучше так:
<allow-access-from domain="*" to-ports="8006" />
<allow-access-from domain="*" />

А что флешка сама находит этот crossdomain.xml при:

on (release) {
shoutcast = new Sound();
shoutcast.loadSound("http://217.113.53.246:8006",true);
}

и просматривает его содержимое?

В самой флешке ничего больше писать не надо?

etc
07.02.2008, 18:14
В самой флешке ничего.

vengria
08.02.2008, 12:55
Все вчера поменяли и все равно глухо...
тема на форуме так и не раскрыта, все облазил по второму разу...

вот ссылки:

http://217.113.53.246/crossdomain.xml
http://radio.vengria.com/zene.swf

1 вопрос: сам swf фаил без разницы где находится?
2 вопрос:кодировка файла crossdomain.xml влияет?

etc
08.02.2008, 13:23
Радио-сервер думает, что к нему обращается браузер, поэтому отдает html-страницу вместо потока.

vengria
11.02.2008, 14:47
Радио-сервер думает, что к нему обращается браузер, поэтому отдает html-страницу вместо потока.
хм... логично, ну это не ответ и тем более не решение задачки.
этим ты хочеш сказать, что Опера обращается ни как браузер?
последнее время у флешек в различных браузерах наблюдается различная работоспособность! Может все дело в плеерах?

возвращаясь к своим баранам:
смотрю никаких исчерпывающих ответов, видимо моя проблема не такая уж и глобальная, может посоветуете форум где мне 100% ответят на мои вопросы и помогут решить проблемку...

etc
11.02.2008, 15:00
А я понятия не имею, какое тут может быть решение задачи. Либо надо настроить сервер, чтобы он всегда отдавал поток, не проверяя User-Agent, либо попросить юзверей сменить браузер.
В Опере, кстати, тоже не работает, во всяком случае, у меня.

nigu
11.02.2008, 15:21
Попробуйте дописать к адресу потока "/;stream.nsv",
т.е. будет вид "http://host:рort/;stream.nsv".

Мне когда-то помогло в решении похожей проблемы...

vengria
10.03.2008, 14:28
ВСЕ!!!!

Праблема решена!:yahoo:

Делаем следущее:

- создаем файлик stream.php и вставляем в него код:

set_time_limit(0);
$url = urldecode($_GET["url"]);
$tmp = parse_url($url);
$streamname = $tmp["host"];
$port = (int)($tmp["port"]);
$path = $tmp["path"];
if(empty($path)) $path = "/";
$time_out = 5;
$sock = @fsockopen($streamname, $port, $errno, $errstr, $time_out);
if($sock) {
@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, "Connection: close\r\n\r\n");
while($contents = @fread($sock, 524)) {
echo $contents;
}
fclose($sock);
}

А во флешке на кнопке прописываем следущее:
on (release) {
shoutcast = new Sound();
shoutcast.loadSound("http://адресс сайта /stream.php?url=http://IP:PORT:8006",true);
}

ЛИЧНО У МЕНЯ И МОИХ ЗНАКОМЫХ ВСЕ РАБОТАЕТ!!!:victory: