PDA

Просмотр полной версии : Не стартует звук после Stop()


Jema
28.02.2006, 16:07
такая проблема, подгружаю звуковой файл:

muza = new Sound();
muza.loadSound("e:\\test.mp3", _root);
muza.setVolume(50);
muza.start();


потом одной кнопкой его стоплю и стартую:

on (release) {
if (_root.sbutton.text=="STOP") {
_root.sbutton.text=" ON "; muza.stop();
} else {
_root.sbutton.text="STOP"; muza.start(0);
}
}


так вот останавливаться он останавливается... а вот играть потом не хочет. Текст меняется с Стоп на Он и обратно... а звук не стартует.
Помогает только опять, перед muza.start(0); поставить muza.loadSound("e:\\test.mp3", _root); но это ж не тема.... что не так делаю, подскажите плз.

Jema
28.02.2006, 17:44
ну что за лажа.... ни кто не знает? должно ж работать, а не хо...
Флэш у меня МХ 6.0

motor4ik
28.02.2006, 17:49
а если так сделать

muza.play

Jema
28.02.2006, 17:57
а если так сделать
muza.play

молчит... хоть ине ругаецца... но так же молчит как и при muza.start

sergwizard
28.02.2006, 17:57
Вот так попробуй.
И еще: внимательно прочти в хэлпе о LoadSound("URL",isStreaming).

Jema
28.02.2006, 18:04
Вот так попробуй.
И еще: внимательно прочти в хэлпе о LoadSound("URL",isStreaming).
чтение хелпа не помогло.
твоя флешина работает, но у меня не открывается... можно мне "исходный текст" или в ХП 6.0 версии

motor4ik
28.02.2006, 18:33
Короче не парься :-)
Вопервых грузани этот файл в бибку т.е. в мувик, дай линкадже например snd



function PlaySound(){
muza = new Sound();
muza.loadSound("snd", _root);
muza.setVolume(50);
muza.start();
}

on (release) {
if (_root.sbutton.text=="STOP") {
_root.sbutton.text=" ON "; _root.PlaySound();
} else {
_root.sbutton.text="STOP"; muza.start(0);
}
}

sergwizard
28.02.2006, 19:46
Моторчик, ну зачем ты всякую ерунду пишешь? Уж если ты подгрузил файл в библиотеку, то используй не loadSound, а attachSound. Тем более, что ты тоже неправильно используешь loadSound. И еще посмотри, что у тебя делает кнопка?
2 Jema, держи.

motor4ik
01.03.2006, 11:36
да, сорри извиняюсь ахинею какую-то писал...был невминяем. больше не буду :D

Jema
01.03.2006, 14:46
спасиб огромное.. работает.
но появилась другая проблема.
Количество повторов (мне нужно бесконечно)
Когда я внедряю звук в файл, я могу в свойствах указать количество повторов. А когда подгружаю отдельно... он у меня играет только 1 раз.
А хелпе не нашел свойства... подскажите как указать ему количество повторов или вообще сказать "играть бесконечно" =)

KidsKilla
01.03.2006, 14:50
никак. но:
snd.onSoundComplete = function(){
this.start()
}

motor4ik
01.03.2006, 15:09
как это никак?

Синтаксис
mySound.start([secondOffset, loop])


Параметры

secondOffset Необязательный параметр, который позволит Вам начать проигрывание звука с указанной точки. Например, если у Вас есть 30-и секундный звук и Вы хотите, чтобы он начал играть посредине, укажите 15 для параметра secondOffset. Звук не остановиться на 15 секунд, а сразу начнет играть с 15-и секундной метки.

loop Необязательный параметр, который позволит Вам указать, сколько раз нужно проиграть звук в цикле.

motor4ik
01.03.2006, 15:13
т.е. mySound.start(0, 100000000000)

Jema
01.03.2006, 15:25
мда.... плохо....
может у меня руки не так стоят.. или флэш... но при
muza.start(0, 100);
играет ОДИН РАЗ и все...

вариант
snd.onSoundComplete = function(){
this.start()
}
помогает повторять звук бесконечно... НО (очень огромная НО)
между повтором образовывается очень неприятный зазор где-то в 500 мс.

Пытался это исправить вот таким изворотом:

if (muza.position>muza.duration-200) {
muza.start();
}

пауза стала немного меньше.. но всеравно никуда не годится...
при увеличении с -200 на -500 начинает уже обгрызать конец... и всеравно пауза присуцтвует.

чем меня вначале флеш обрадовал... так это тем что например вот этот "луп" loop_01.mp3 (280 kb) (http://new.caraudio.com.ua/images/loop_01.mp3) он "соединял" конец с началом ОЧЕНЬ качественно.. лучше винампа. Но это я проверял на ВСТРОЕЕНОМ звуковом файле во флешку... а вот если ёё подгружать.. возникает такая проблемка =(
еще идеи будут?

motor4ik
01.03.2006, 15:37
с обгрызанием проблему по-моему так и не решили...почему у тебя не работает луп, не знаю, у меня все в поряде, дай исходник поглазеть или код которым ты все это делаешь.

Jema
01.03.2006, 15:50
исходник нехороший 7 метров весит (внедрял туда звук, почистил библиотеку... не помогает)

но я в первом кадре просто делаю

num=1+random(2);
muza = new Sound();
muza.loadSound("images/loop_0"+num+".mp3", 1);
muza.setVolume(50);
muza.start(0, 100);

test.text="images/loop_0"+num+".mp3";


в остальных 2-х кадрах ничего кроме как в третем
gotoAndPlay(2);

фсе....

Jema
01.03.2006, 20:10
ну народ? что... никто фоновую музыку не подгружал никогда из файлов...
Только такую - которая не имеет ни начала ни конца... так называемый loop.

sergwizard
02.03.2006, 00:05
Jema, просто перепиши в моем исходнике функцию, вот так:
function loadMus(){
muza = new Sound();
muza.loadSound("e:\\test.mp3",1);
muza.setVolume(50);
muza.start();
muza.onSoundComplete = loadMus;
}
и все. :)
Но учти, "зазор" все равно останется. Он возникает из-за того, что ты ПОДГРУЖАЕШЬ внешний файл. При attachSound() легко можно избавиться от этого зазора.

motor4ik
02.03.2006, 11:25
при attachSound() будет точно такой же зазор, поверьте по собственному опыту знаю