PDA

Просмотр полной версии : Class MusicPlayer


Snut
24.06.2007, 21:44
Вообщем поставил задачу сделать флеш плеер мп3шный функционала почти 0, а именно: показать сколько загруженно, сколько проигранно, уменьшение\увеличение громкости через startDrag и показ имени артиста и названия композиции, для ентого написал класс:
MusicPlayer.as

/*
* auth: Snut
*/
class MusicPlayer{
public var URL:String;
private var time_played:Number = track.position;
private var time_all:Number = track.duration;
private var track:Sound;
private var load_s:Number;
private var total_s:Number;


public function initSound (URL) {
track = new Sound();
track.loadSound(URL, true);
load_s = track.getBytesLoaded();
total_s = track.getBytesTotal();
getDuration();
getLoad();
getArtistName();
getSongName();
}
private function getDuration ():Number {
var played:Number = Math.floor((time_played/time_all)*100);
return played;
}

private function getLoad ():Number {
var loaded:Number = Math.floor((load_s/total_s)*100);
return loaded;
}
private function getArtistName ():String {
var artistName:String = track.id3.TPE2;
return artistName;
}
private function getSongName ():String {
var songName:String = track.id3.TPE2;
return songName;
}
}


В первом фрейме флешки:

initSound("track1.mp3");
this.artist_name.text = artistName;
this.track_name.text = songName;
this.play_bar.progress_bar.gotoAndPlay(played);
this.play_bar.load_bar.gotoAndPlay(loaded);


И не могу понять почему даж мпзшка не грузится... в чем моя ошибка?

iNils
24.06.2007, 22:14
Для начала неплохо создать MusicPlayer. Потом у него вызвать метод initSound. Названия трека и артиста будут доступны не сразу (зачем вообще вы вызываете метода которые узнают имя артиста и трека, когда возвращаемые данные вы не где не сохраняете?). Поэтому вызов в initSound метода getArtistName и других бесполезно.

Snut
24.06.2007, 22:29
ага, знгачит следовательно нужно дождаться загрузки файла а потом уже все из него вытащить, так?

DarkLight
24.06.2007, 22:36
есть спец событие onID3 для этого

iNils
24.06.2007, 23:09
ага, знгачит следовательно нужно дождаться загрузки файла а потом уже все из него вытащить, так?
Не, сначала нужно сделать следущее
var mp:MusicPlayer = MusicPlayer ();
mp.initSound("track1.mp3");

Snut
25.06.2007, 00:36
а точна я же класс не инициализировал) туплю) пасиба

// UPD
Чет ничаво не вышло ибо функционал понизиди до 0 и сделал вот что miniplayer.zip (http://snut.narod.ru/miniplayer.zip) флешка вставляется как обычно ток вот таким макаром

<embed src="file.swf?file=dura.mp3"></embed>


Не могу понять где моя ошибка... старею((( Help plz