|
|
|||||
Регистрация: Nov 2011
Сообщений: 8
|
ID3 с потоковыми аудиофайлами
Собственно код:
import flash.media.Sound; import flash.media.SoundLoaderContext; import flash.net.URLRequest; import flash.events.Event; import flash.media.ID3Info; var s:Sound = new Sound(); var req:URLRequest = new URLRequest("http://88.198.134.36:8000/live"); var context:SoundLoaderContext = new SoundLoaderContext(8000, true); s.load(req, context); s.play(); s.addEventListener(Event.ID3, onID3InfoReceived); function onID3InfoReceived(event:Event) { var id3:ID3Info = event.target.id3; trace("Received ID3 Info:"); for (var propName:String in id3) { trace(propName + " = " + id3[propName]); } songname.text = ("Song name: " + id3.songName); artist.text = ("Artist: " + id3.artist); album.text = ("Album: " + id3.album); } |
|
|||||
Регистрация: Feb 2006
Адрес: Луганск
Сообщений: 103
|
А вы случайно не к Shoutcast Radio подключаетесь? Если да, то там так просто ID3 не получить.
|
|
|||||
Регистрация: Nov 2011
Сообщений: 8
|
Цитата:
Добавлено через 13 минут Цитата:
|
|
|||||
Регистрация: Nov 2011
Сообщений: 8
|
В упор не вижу, вроде бы всё "как по книжке" сделано.
|
|
|||||
из всяких *castов ID3 по событию не получить...нужно парсить байты, выдергивать метаданные
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
Регистрация: Mar 2007
Сообщений: 319
|
Возможно это поможет, но с crossdomain будут проблемы.
package { import flash.events.Event; import flash.events.EventDispatcher; import flash.events.ProgressEvent; import flash.net.Socket; [Event(name="change", type="flash.events.Event")] public class ID3Reader extends EventDispatcher { public const data:Object = {}; public function ID3Reader() { } public function getID3(host:String, port:int, get:String):void { var socket:Socket = new Socket(); socket.connect(host, port); socket.writeUTFBytes("GET /"+get+" HTTP/1.1\r\nHost: "+host+":"+port+"\r\n\r\n"); socket.addEventListener(ProgressEvent.SOCKET_DATA, onData); } private function onData(event:ProgressEvent):void { var socket:Socket = event.target as Socket; socket.removeEventListener(ProgressEvent.SOCKET_DATA, onData); for each(var name:String in socket.readUTFBytes(socket.bytesAvailable).split("\r\n")) { var id3Data:Array = name.split(":"); if(id3Data.length == 2) { data[id3Data[0]] = id3Data[1]; } } dispatchEvent(new Event(Event.CHANGE)); } } } |
|
|||||
Регистрация: Nov 2011
Сообщений: 8
|
1046: Type was not found or was not a compile-time constant: ID3Reader.
1180: Call to a possibly undefined method ID3Reader. ID3Reader - это что такое? Ну в общем попробовал ещё вот так: package { import flash.display.Sprite; import flash.media.Sound; import flash.net.URLRequest; import flash.media.ID3Info; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.Event; public class Sound_id3Example extends Sprite { private var snd:Sound = new Sound(); private var myTextField:TextField = new TextField(); public function Sound_id3Example() { snd.addEventListener(Event.ID3, id3Handler); snd.load(new URLRequest("http://88.198.134.36:8000/live")); } private function id3Handler(event:Event):void { var id3:ID3Info = snd.id3; myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.border = true; myTextField.appendText("Received ID3 Info: \n"); for (var propName:String in id3) { myTextField.appendText(propName + " = " + id3[propName] + "\n"); } myTextField.appendText("\n" + "Artist: " + id3.artist + "\n"); myTextField.appendText("Song name: " + id3.songName + "\n"); myTextField.appendText("Album: " + id3.album + "\n\n"); this.addChild(myTextField); } } } Тогда вот что думаю, IceCast 2 всё-таки отправляет же метаданные, например и AIMP3 их читать умеет, ну так вот, ещё пока не знаю как, но допустим что эти метаданные будут сохраняться каждые 10 секунд в некий генерируемый текстовый файл на наш сервер, а наше flash-радио будет их заимствовать из этого файла тоже каждые 10 секунд, нэ? Или всё-таки проще напрячь мозги и что-нибудь придумать в рамках одного лишь flash-файла? |
|
|||||
Регистрация: Mar 2007
Сообщений: 319
|
класс то создай и скопируй в корень
|
Часовой пояс GMT +4, время: 01:09. |
|
« Предыдущая тема | Следующая тема » |
|
|