Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.01.2012, 17:42
DarKDoteR вне форума Посмотреть профиль Отправить личное сообщение для DarKDoteR Найти все сообщения от DarKDoteR
  № 1  
Ответить с цитированием
DarKDoteR

Регистрация: Nov 2011
Сообщений: 8
По умолчанию ID3 с потоковыми аудиофайлами

Собственно код:
Код AS3:
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);
}
В динамических текстовых полях songname, artist и album должны отображаться метаданные воспроизводимых треков. Но не отображаются ... Почиму?

Старый 04.01.2012, 20:33
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 2  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
потому что не наступает событие Event.ID3 и соответственно не вызывается функция onID3InfoReceived


Последний раз редактировалось PainKiller; 04.01.2012 в 20:44.
Старый 04.01.2012, 20:45
Olmer вне форума Посмотреть профиль Отправить личное сообщение для Olmer Посетить домашнюю страницу Olmer Найти все сообщения от Olmer
  № 3  
Ответить с цитированием
Olmer
 
Аватар для Olmer

Регистрация: Feb 2006
Адрес: Луганск
Сообщений: 103
А вы случайно не к Shoutcast Radio подключаетесь? Если да, то там так просто ID3 не получить.

Старый 04.01.2012, 21:41
DarKDoteR вне форума Посмотреть профиль Отправить личное сообщение для DarKDoteR Найти все сообщения от DarKDoteR
  № 4  
Ответить с цитированием
DarKDoteR

Регистрация: Nov 2011
Сообщений: 8
Цитата:
к Shoutcast Radio подключаетесь?
Нет. К IceCast 2.

Добавлено через 13 минут
Цитата:
не наступает событие Event.ID3
Полагаете?

Старый 04.01.2012, 22:32
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 5  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
а вы как думаете, почему у вас трейсы не срабатывают?

Старый 04.01.2012, 23:19
DarKDoteR вне форума Посмотреть профиль Отправить личное сообщение для DarKDoteR Найти все сообщения от DarKDoteR
  № 6  
Ответить с цитированием
DarKDoteR

Регистрация: Nov 2011
Сообщений: 8
В упор не вижу, вроде бы всё "как по книжке" сделано.

Старый 05.01.2012, 12:58
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 7  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
из всяких *castов ID3 по событию не получить...нужно парсить байты, выдергивать метаданные
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 06.01.2012, 00:50
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 8  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
Возможно это поможет, но с crossdomain будут проблемы.
Код AS3:
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));
		}
	}
}
Код AS3:
var icyID3:ID3Reader = new ID3Reader();
icyID3.getID3("88.198.134.36", 8000, "live");
icyID3.addEventListener(Event.CHANGE, onChange);
 
function onChange(event:Event):void
{
	for(var name:String in event.target.data)
	{
		trace (name + " " + event.target.data[name] + "\n");
	}
}

Старый 06.01.2012, 22:28
DarKDoteR вне форума Посмотреть профиль Отправить личное сообщение для DarKDoteR Найти все сообщения от DarKDoteR
  № 9  
Ответить с цитированием
DarKDoteR

Регистрация: Nov 2011
Сообщений: 8
Код AS3:
var icyID3:ID3Reader = new ID3Reader();
1046: Type was not found or was not a compile-time constant: ID3Reader.
1180: Call to a possibly undefined method ID3Reader.
ID3Reader - это что такое?

Ну в общем попробовал ещё вот так:
Код AS3:
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);
        }
    }
}
Тоже ни чего не вышло, может и вправду ID3 с айскастом не дружит.
Тогда вот что думаю, IceCast 2 всё-таки отправляет же метаданные, например и AIMP3 их читать умеет, ну так вот, ещё пока не знаю как, но допустим что эти метаданные будут сохраняться каждые 10 секунд в некий генерируемый текстовый файл на наш сервер, а наше flash-радио будет их заимствовать из этого файла тоже каждые 10 секунд, нэ? Или всё-таки проще напрячь мозги и что-нибудь придумать в рамках одного лишь flash-файла?

Старый 07.01.2012, 00:16
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 10  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
Цитата:
Сообщение от DarKDoteR Посмотреть сообщение
Код AS3:
var icyID3:ID3Reader = new ID3Reader();
1046: Type was not found or was not a compile-time constant: ID3Reader.
1180: Call to a possibly undefined method ID3Reader.
ID3Reader - это что такое?
класс то создай и скопируй в корень

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:13.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.