PDA

Просмотр полной версии : проигрывание музыки рандомом в течении всей презентации.


ogonek
21.07.2008, 11:57
здравствуйте!

у меня презентация состоит из фонового роликаи подгружающихся внутрь файлов.
то есть, можно организовать проигрывание всей музыки по порядку в случайном порядке.
я впервые пытаюсь работать со звуком и сейчас столкнулась с тем, что при загруке файлов мп3 в библиотеку вылезает сообщение о том что файлы невозможно загрузить, так как проблемы с их прочтением.

а код следующий:

var url1_sound:Sound = new Sound();
var url2_sound:Sound = new Sound();
var url3_soound:Sound = new Sound();
url1_sound.loadSound("mika.mp3", true);
url2_sound.loadSound("runaway.mp3", true);
url3_sound.loadSound("royksopp.mp3", true);

приводит к проигрыванию всей музыки одновременно.

хотя, вроде бы, чтоб запустить поогрывание, надо еще написать

start.url3_sound();
например.


сейчас мне необходимо запускать файлы по очереди и вперемешку.
получается рандом в цикле?

а еще кнопочку написать которая бы останавливала-проигрывала музыку. я могу, наверное, написать на один файл, но на все сразу - не знаю, как.

свои попытки что-то сотворить - прилагаю, но музыку туд надо добавить - форум не поддерживает такой объем файлов.

ogonek
21.07.2008, 12:59
ладно, я понимаю, вопрос сумбурный.
по порядку:

почему по этому коду начинают играть все звуки, тогда как я просто их подгружаю, а не запукскаю?

как просто подгрузить звуки а потом уже проигрывать их, если в библотеку они недобавляются, по-видимому из-за размера?

джонатан
21.07.2008, 15:02
// Создаем новый объект Sound
var my_sound:Sound = new Sound();
my_sound.onLoad = function(success:Boolean) {
my_sound.start();

// Когда обработчик определен, загружаем звук
my_sound.loadSound("song1.mp3", true);

Wolsh
21.07.2008, 15:41
Sound - это не звук (распространенная ошибка) а звукооператор.
Нельзя сказать "Звук, заиграй!" или "Звук, загрузись!" Надо чтобы был диджей класса Саунд, по имени скажем, Миха. Он должен привязываться к объекту - CD-плееру. Потом Вы говорите ему, какой диск вставить. И, наконец - "Миха, врубай!" или "Миха, вырубай!"

var mikha:Sound = new Sound(sony_mc);
mikha.attachSound("Song.mp3");
mikha.start();
mikha.setVolume(50);
Т.е.
- Миха, будешь диджеем, вот тебе плеер
- Миха, вот тебе диск с песней
- Миха, врубай!
- Миха, сделай потише

Если плеер (объект привязки звукооператора - мувиклип) не указан, все Ваши диски сваливаются в кучу, вместе играют, вместе выключаются и вместе меняют громкость.

pS Да, и не хотят добавляться в библиотеку скорее всего из-за неудачных параметров сжатия. Попробуйте пережать в стандарт, 44100/128кб

джонатан
21.07.2008, 15:45
Ну ведь человек же пишет, что не может в библиотеку загрузить звук! Откуда он аттачить будет?

Wolsh
21.07.2008, 16:02
Да какая разница, лоад или аттач. Речь о привязке к объекту.

джонатан
21.07.2008, 16:30
А, да! Дейсвительно. Я и не заметил, что он не привязал никчему. Прошу прощения.

Wolsh
21.07.2008, 18:56
Я, к сожалению, не понял что должна делать кнопка, но этот кусок должен выглядеть так:
_root.createEmptyMovieClip("sound1_mc",_root.getNextHighestDepth());
_root.createEmptyMovieClip("sound2_mc",_root.getNextHighestDepth());
_root.createEmptyMovieClip("sound3_mc",_root.getNextHighestDepth());
//загрузка музыки
var url1_sound:Sound = new Sound(sound1_mc);
var url2_sound:Sound = new Sound(sound2_mc);
var url3_sound:Sound = new Sound(sound3_mc);

url1_sound.loadSound("1.mp3", true);
url2_sound.loadSound("2.mp3", true);
url3_sound.loadSound("3.mp3", true);
//
url1_sound.start();
url2_sound.stop();
url3_sound.stop();

crazyone
21.07.2008, 20:07
_root.createEmptyMovieClip("sound1_mc",_root.getNextHighestDepth());
_root.createEmptyMovieClip("sound2_mc",_root.getNextHighestDepth());
_root.createEmptyMovieClip("sound3_mc",_root.getNextHighestDepth());
//создание объектов Sound
var url1_sound:Sound = new Sound(sound1_mc);
var url2_sound:Sound = new Sound(sound2_mc);
var url3_sound:Sound = new Sound(sound3_mc);
//загрузка музыки
url1_sound.loadSound("1.mp3", false);
url2_sound.loadSound("2.mp3", false);
url3_sound.loadSound("3.mp3", false);

//массив со всеми объектами Sound
var sounds=new Array(url1_sound,url2_sound,url3_sound);
//массив с объектами Sound, которые были загружены
loaded_sounds=new Array();

//обработка событий для каждого из Sound одинакова
for(var i=0;i<sounds.length;i++){
sounds[i].onLoad=function(){
//когда загрузились - если еще нет загруженых, начать играть этот звук
if(loaded_sounds.length<1){
this.start();
}
//добавить в массив загруженых этот звук
loaded_sounds.push(this);
}

sounds[i].onSoundComplete=function(){
//когда закончился проигрываться этот звук, рандомно выбираем другой звук из массива загруженых звуков и начинаем играть его.
var scount=loaded_sounds.length;
pnum=Math.floor(Math.random()*scount);
loaded_sounds[pnum].start();
}
}


Как-то так.

scarbo
21.07.2008, 21:37
Ребят,я понимаю вопрос не совсем к месту,но все же,может мне кто подскажет,почему потоковый mp3 плеер не играет в Опере и IE, а только в Фирфоксе.По поиску искал,но там посты без ответов остались.Вот пример:пример (http://dimandl.by.ru/demo.swf)