Цитата:
Сообщение от MikroAcse
Неужели? Сам придумал?
|
нет не сам, *cast сервер не передаёт заголовок mp3 которую он проигрывает, где находятся ID3, соответсвенно в Sound не будет метаданных. Наименование заголовок битрейт и прочее от отдаёт в хедере http, но так как в URLLoader и URLStream не даётся возможность читать хедер, то проигрываемый трек не узнать простыми способами,. Узнать хедер можно с помощью Socket если air или с помощью своего сервера, допустим на php.

PHP код:
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "урла");
curl_setopt($curl, CURLOPT_TIMEOUT, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_WRITEHEADER, fopen ("header.txt", "w"));
curl_exec($curl);
curl_close($curl);
?>
в header.txt будет записан текст вида

Код:
HTTP/1.0 200 OK
Content-Type: audio/mpeg
icy-br:64
ice-audio-info: ice-samplerate=44100;ice-bitrate=64;ice-channels=2
icy-br:64
icy-description:Very Hot!
icy-genre:Pop
icy-name:MEGA RADIO
icy-pub:1
icy-url:http://
Server: Icecast 2.3.2-kh29
Cache-Control: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
получение хедера через Socket

Код AS3:
var socket:Socket = new Socket();
socket.connect(host, port);
socket.addEventListener(ProgressEvent.SOCKET_DATA, onData);
socket.writeUTFBytes("GET /"+get+" HTTP/1.1\r\nHost: "+host+":"+port+"\r\n\r\n");
socket.flush();
function onData(event:ProgressEvent):void
{
for each(var name:String in socket.readUTFBytes(socket.bytesAvailable).split("\r\n"))
{
var id3Data:Array = name.split(":");
if(id3Data.length == 2)
{
trace(id3Data[0], id3Data[1]);
}
}
socket.close();
socket.removeEventListener(ProgressEvent.SOCKET_DATA, onData);
}