konto usunięte
Temat: Problem z klasą Sound i ID3
Mam problem z dotarciem do informacji ID3 z pliku mp3. Mam 2 funkcje:1. Pobiera plik mp3 z dysku i wyciąga z niego kilka własności. Tworze sobie globalną zmienną s:Sound i ładuje do niej url pliku pobranego w funkcji.Dopisuje eventListener, który dobiera sie do informacji ID3.
private var s:Sound = new Sound();
private function filesSelected(e:FileListEvent):void{
for(var i:Number = 0;i<a.length;i++){
var f:File = File(a[i]);
var audioFile:AudioFile = new AudioFile();
audioFile.fileName = f.name;
audioFile.filePath = f.nativePath;
audioFile.url = f.url;
var urlReq:URLRequest = new URLRequest(f.nativePath);
s.addEventListener(Event.ID3,onID3InfoReceived);
s.load(urlReq);
ac.audioCollection.addItem(audioFile);
listOfAudio_id.dataProvider = ac.audioCollection;
}
2. Ta funkcja pobiera tagi z pliku mp3 i zapisuje je w tablicy. I tu wszystko ładnie śmiga, ale ni jestem w stanie zwrócić tych informacji do tej pierwszej funkcji, a muszę to zrobić, gdyż tam tworzy się lokalna zmienna audioFile to której te informacje muszę przekazać. audioFile nie może być zmienną globalną.
private function onID3InfoReceived(event:Event):void
{
var id3:ID3Info = event.target.id3;
var i:int = 0;
var ID3tags:Array = new Array(); //tablica z info o ID3
for(var propName:String in id3)
{
ID3tags[propName]=[id3[propName]];
} }
I jeszcze jedno pytanko: w pierwszej funkcji jak przypisuję url pliku do obiektu sound, przy debugowaniu pokazuje mi że wszystkie własności tego obiektu są albo 0 albo null, łącznie z url'em...chociaż plik się odgrywa bez problemu...
Będę wdzięczna za pomoc, bo już mnie to wkurza :)Katarzyna Jasik edytował(a) ten post dnia 28.12.10 o godzinie 12:58