PDA

Просмотр полной версии : как сделать mute ?


delphic
20.02.2017, 11:59
здравствуйте,есть ли возможность отключить звук mute или указывается только громкость,то есть присвоить громкость 0 только так ?

Tails
20.02.2017, 12:39
В базовом апи нету, там всё сложно.
Попробуй посмотреть мой вариант контроллера звука.
Test.swf

yumakar
22.02.2017, 04:52
Каждое нажатие кнопки mute_btn чередует режимы mute и unmute.
mute_btn.addEventListener(MouseEvent.MOUSE_DOWN, mute);
var counter_mute = 0;
var mt = new SoundTransform();
function mute (event:Event):void {
counter_mute ++;
if(counter_mute > 1) {counter_mute = 0}
if(counter_mute == 1) {
mt.volume = 0;
soundChannel.soundTransform = mt};
if(counter_mute == 0) {
mt.volume = 1;
soundChannel.soundTransform = mt};
}

caseyryan
22.02.2017, 10:08
yumakar для чего нужен этот counter_mute?
Что мешает сразу проверять volume?
if (mt.volume > 0) mt.volume = 0;
else mt.volume = 1;

callme
22.02.2017, 10:38
yumakar для чего нужен этот counter_mute?
Что мешает сразу проверять volume?
if (mt.volume > 0) mt.volume = 0;
else mt.volume = 1;


Чтобы потом когда появится третье состояние SOFT_SOUND,

const SOFT_SOUND = 2;

if(counter_mute == 1) {
mt.volume = 0;
soundChannel.soundTransform = mt;
}
if(counter_mute == 0) {
mt.volume = 1;
soundChannel.soundTransform = mt};
}
if(counter_mute == SOFT_SOUND) {
mt.volume = 0.5;
soundChannel.soundTransform = mt};
}


не пришлось переписывать вот этот блок кода.

if(counter_mute == 1) {
mt.volume = 0;
soundChannel.soundTransform = mt;
}
if(counter_mute == 0) {
mt.volume = 1;
soundChannel.soundTransform = mt};
}

yumakar
22.02.2017, 13:22
Чтобы потом когда появится третье состояние SOFT_SOUND,

const SOFT_SOUND = 2;

if(counter_mute == 1) {
mt.volume = 0;
soundChannel.soundTransform = mt;
}
if(counter_mute == 0) {
mt.volume = 1;
soundChannel.soundTransform = mt};
}
if(counter_mute == SOFT_SOUND) {
mt.volume = 0.5;
soundChannel.soundTransform = mt};
}


не пришлось переписывать вот этот блок кода.

if(counter_mute == 1) {
mt.volume = 0;
soundChannel.soundTransform = mt;
}
if(counter_mute == 0) {
mt.volume = 1;
soundChannel.soundTransform = mt};
}

Чтобы одной кнопкой включать-выключать mute. Можно и по другому. Функцию можно привязать к регулятору громкости как у меня здесь (http://yumakar.ru/music.html). Только там вместо mute привязана функция mono. Тогда при выходе из функции всегда будет тот уровень громкости, который задан регулятором, а не максимальный mt.volume = 1.

caseyryan
22.02.2017, 20:02
Чтобы потом когда появится третье состояние SOFT_SOUND,
Здесь речь идет только о состоянии MUTE. Никакого третьего состояния не появится.
Я бы вообще контроллер звука сделал подругому, но в теме то об этом не спрашивалось

in4core
23.02.2017, 13:48
Вообще по хорошему, мут должен быть глобальным, чтобы РАЗ и все отключил, а потом РАЗ и все включил.

SoundMixer.soundTransform = new SoundTransform(volume);
Странно почему об этом молчат)

delphic
26.02.2017, 12:51
я извиняюсь,были проблемы.что то не вкурю

Добавлено через 3 минуты
в итоге mt.volume = 0;
soundChannel.soundTransform = mt;
что такое mt?
клип?

in4core
26.02.2017, 14:10
mt = soundTranfsorm - написано же выше

yumakar
26.02.2017, 18:27
я извиняюсь,были проблемы.что то не вкурю

Добавлено через 3 минуты
в итоге mt.volume = 0;
soundChannel.soundTransform = mt;
что такое mt?
клип?

Переменная mt (от слова mute, имя может быть любым) задаёт параметр уровня громкости, который затем присваивается классу soundChannel.