Как я могу использовать более 2 выходных каналов в as3
У меня есть 8-канальная звуковая карта USB. Как я могу использовать эти 8 каналов от вспышки, чтобы сделать что-то вроде стерео динамика на канале 1+2, и немного Athmos на других каналах.
С уважением.
3 ответа
Как я могу использовать эти 8 каналов от вспышки, чтобы сделать что-то вроде стерео динамика на канале 1+2 и немного атмосферы на других каналах.
Кодек AAC поддерживает 8-канальный звук (объемный звук 7.1).
Вы можете загрузить различные звуки AAC (где аудиосодержимое каждого файла отображается на определенный канал во время создания этого файла AAC).
Например: ваш stereo.aac
может быть определен только передний левый + передний правый... и ваш atmos1.aac
использует Back Left, но файл atmos2.aac
использует Back Right и так далее... (AAC может содержаться в некоторых аудиофайлах MP4 или FLV-файла).
Попробуйте тест воспроизведения ниже. Если это похоже на то, чего вы хотите достичь, тогда используйте AAC.
(источник звука: https://www2.iis.fraunhofer.de/AAC/multichannel.html)
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.client = new Object();
ns.play("https://www2.iis.fraunhofer.de/AAC/7.1auditionOutLeader_v2_rtb.mp4");
Что я сделал, чтобы исправить это: с помощью Banana Voicemeeter, чтобы направить звук от двух разных приложений к разным динамикам.
Если вы спрашиваете, как использовать 8 разных динамиков... Мм, я на 99% не поддерживаю вспышку, но похоже, что поддерживается объемное звучание 5.1. Но это стоит посмотреть.
разделить стереозвук
Чтобы использовать левый и правый динамики независимо, сделайте следующее:
Создать 2 SoundChannel
объекты и 2 Sound
объекты. Установите 1 на желаемый левый вывод и один на правый как-то так
var leftSound:Sound = new Sound("leftSound");
var rightSound:Sound = new Sound("rightSound");
var trans:SoundTransform = new SoundTransform(1, -1);//volume 1, panning full left
var leftChannel:SoundChannel = leftSound.play(0,1,trans);
trans.pan = 1; // set panning to full right
var rightChannel:SoundChannel = rightSound.play(0,1,trans);
Посмотрите это в документации, если это не работает. документы здесь
Сделайте то же самое для дополнительных каналов, но не связывайтесь с панорамированием (или устанавливайте их в 0), если вы хотите, чтобы атмосфера была равномерно распределена.
резюме
- Создать
Sound
объект для каждого звука, который вы хотите воспроизвести или песню, которую вы хотите играть - Создать
SoundChannel
Объект для каждого канала, который вы хотите контролировать. Вы описали left, right и athmos(? Не знаете что это), так что это как минимум 3 канала. - Создать
SoundTransform
объект - Воспроизведите каждый канал, используя желаемые настройки преобразования, как показано выше.