PDA

Просмотр полной версии : mp3 player / не знаю как запустить воспроизведение автоматически


sector_222
26.06.2011, 14:52
Добрый день. Взял готовый исходник mp3 плеера, оставил только кнопки пуск. пауза и регулятор громкости.
добавил плавное включение и выключение звука, но не получается сделать так, чтобы функция
playSong() при запуске ролика запускалась автоматически, если я добавляю в код просто:

playSong(0);


То звук не воспроизводиться, только после того, как сначала нажму кнопку пауза, а затем кнопку старт.
Подскажите пожалуйста в чём ошибка?
пример кода см ниже

/* переменные */
var _volume:Number = 0;
var _currentPosition:Number = 0;
var _paused:Boolean = false;
var _muted:Boolean = false;
var sound_int:Number = null;

/* предустановки */
pause_btn._visible = false;
v_bar._visible = false;
track_info_txt.text = "loading...";
end_time_txt.text = "--:--";

/* загрузка mp3 в плеер */
var http =0;//для перехода по массиву
var MyData = new LoadVars();
MyData.load("sound.txt");
MyData.onLoad = function(success){
if (success){
var sound=MyData.sound.split(";");
my_sound = new Sound();
my_sound.loadSound(sound[http], false);



/* чтение тегов */
my_sound.onID3 = function(){
var trackInfo:String = my_sound.id3.artist +" - " + my_sound.id3.songname;
track_info_txt.text = trackInfo;
trace(track_info_txt.text);
}
}
}

/*функция play*/
function playSong() {
my_sound.start(_paused ? _currentPosition/1000 : 0,999);
var interval:Number = 1;
onEnterFrame = function()
{
v = my_sound.getVolume() + interval;
v_bar.volume_mc._width = v/2;
trace(v);
my_sound.setVolume(v);
if (v>=100)
{
delete onEnterFrame;
}
}

my_sound.setVolume(_volume);
_paused = false;
play_btn._visible = false;
pause_btn._visible = true;
v_bar._visible = true;
viewProgress();
}

/*кнопка play*/
play_btn.onRelease = playSong;

/*кнопка pause*/
pause_btn.onRelease = function() {
var interval:Number = 1;
onEnterFrame = function()
{
v = my_sound.getVolume() - interval;
v_bar.volume_mc._width = v/2;
trace(v);
my_sound.setVolume(v);
if (v<=0)
{
delete onEnterFrame;
my_sound.stop();
v_bar._visible = false;
}
}
v_bar.no_vol._visible = false;
this._visible = false;
play_btn._visible = true;
_currentPosition = my_sound.position;
_paused = true;
};

.....


а в прочем вот и сам файл

sector_222
01.07.2011, 00:30
форум уже не тот =(
в общем идея такова: не играет автоматически посколку не загружен полностью файл, поэтому автозапуск нужно сделать через промежуток времени, напримен через 3 секунды:


displayTime = 1;
autoplay = function () {
displayTime--;
if (displayTime == 0) {
clearInterval(timer);
playSong(0);
}
};
timer = setInterval(autoplay, 3000);

dark256
01.07.2011, 11:21
Форум-то еще тот, юзера вот нерадивые.

my_sound.loadSound(sound[http], false);

не играет автоматически поскольку не загружен полностью файл - разумеется. А зачем у вас флаг FALSE?


Example
The following example loads an event sound, which cannot play until it is fully loaded:

var my_sound:Sound = new Sound();
my_sound.loadSound("song1.mp3", false);

В потоковом же режиме звук включится, когда будет закачано музыки на 5 секунд звучания.
Этот параметр можно именять:
_soundbuftime = 60 // буфер на 1 минуту