Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Простейший визуализатор (http://www.flasher.ru/forum/showthread.php?t=215598)

deepNoise 29.05.2018 15:29

Простейший визуализатор
 
В AS3 совсем не разбираюсь.
Подскажите пример скрипта, чтобы менял значение чего либо в зависимости от громкости звука.
Например: Есть клип clip и в нём 5 кадров. Как сделать, чтобы эти кадры менялись в зависимости от громкости звука по возрастанию?
Ещё интересует возможно ли сделать визуализатор не для конкретного файла, а для всех звуков системы вообще? То есть если, например, я включу плеер, то он бы на него реагировал.

DEVORON 30.05.2018 11:49

Пример визуализатора

https://code.tutsplus.com/articles/r...--active-10808

deepNoise 30.05.2018 13:12

А как создавать классы? Я застрял на четвёртом пункте, где нужно создать пример класса SoundChannel. Вот только я не умею их создавать. Пробовал создать в той же директории SoundChannel.as, не работает, пробовал скопировать скрипт в Main.as, тоже не работает. Пробовал создать новый слой и вписать скрипт в пустой кадр, то же самое . Так как нужно?

undefined 30.05.2018 18:32

класс SoundChannel создавать не надо, он идет из коробки.Вот этой строкой ты говоришь что надо его включить в проект:
Код AS3:

import flash.media.SoundChannel;

В этом примере все делается внутри единственного класса Main, его и надо создавать самому.

deepNoise 30.05.2018 22:16

Сложно разобраться, когда не понимаешь лингвистики и вообще принципа работы скрипта. Я раньше с AS2 немного работал, так тут всё совсем другое. Что то понимаю, что то нет.

В общем если проще, у меня есть скрипт:
Код AS3:

var myMic:Microphone = Microphone.getMicrophone();
Security.showSettings(SecurityPanel.MICROPHONE);
myMic.setLoopBack(true);
myMic.setUseEchoSuppression(false);
 
stage.addEventListener(Event.ENTER_FRAME, stage_EnterFrame);
 
function stage_EnterFrame(e:Event)
{
var num:Number = myMic.activityLevel * 4;
trace(num);
 
if(num <= 10){
        voice.gotoAndStop(1);
}else if(num <= 20){
        voice.gotoAndStop(2);
}else if(num <= 30){
        voice.gotoAndStop(3);
}else if(num <= 40){
        voice.gotoAndStop(4);
}
 
}

Здесь в зависимости от значения переменной n, которая определяет уровень звука в микрофоне, переходит на определённый кадр клипа.
А как сделать, чтобы эта переменная n определяла уровень звука в самой системе? Имею ввиду не из определённого звукового файла, а в самом Windows.

undefined 30.05.2018 23:25

Тут все просто. Средствами ас3 никак

deepNoise 31.05.2018 00:09

Ага, можно тогда просто микрофон к колонкам приставить у будет работать)
А как тогда сделать то же самое с внешним звуковым файлом? Как получить переменную для уровня звука?
Я так понял нужно класс Sound и SoundChannel импортировать, но вот что дальше. Наверно должно быть какое то свойство, которое можно перевести в переменную.

DEVORON 31.05.2018 00:16

Вот пример загрузки внешнего звукового файла

http://blog.gskinner.com/archives/20..._code_spe.html

deepNoise 31.05.2018 03:00

Я порылся в интернете и оказывается, что захват звука из системы возможен. Поищите в поисковике программку chaosvision. Создатель пишет, что он сделал её как раз средствами AS3. И я её попробовал, действительно работает, графика реагирует на звук моего плеера. Только нужно стерео микшер включить.

undefined 31.05.2018 21:41

Товарищ,ответ на вопрос нужен прежде всего тебе.Никто ради тебя ничего искать не будет.Ссылка в сообщение вставляется через кнопку "вставить ссылку"
По делу: флэш имеет доступ только к звукам,играющим в пределах данной флэшки,иначе можно было бы легко тырить лицензионное аудио.Твоя програмка скорее всего использует какой-то внешний модуль,который подключается к флэшке и передает ей системные звуки.У чистого флэша таких прав нет.


Часовой пояс GMT +4, время: 01:48.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.