У меня есть несколько звуковых объектов во флеше, я хотел бы смешивать разные точки в этих звуковых файлах, чтобы создать один шедевр и сохранить его как mp3. Я видел различные приложения «микшер» в Интернете и хотел бы знать, в какой области (области) смотреть, чтобы иметь возможность сделать это сам.Смешать несколько звуков во флэш-памяти
ответ
Чтобы создать музыку или все, что вы пытаетесь создать, вам необходимо импортировать ваши файлы wav и mp3 в свою библиотеку и перетащить их в область фильма, чтобы добавить их на свою временную шкалу. Используйте несколько слоев, чтобы помочь их организовать. Чтобы протестировать вашу песню, вы можете нажать Enter для запуска из любого кадра вперёд до конца.
Не забывайте, что у вас есть несколько эффектов, которые вы можете применить, если у вас есть звук, выбранный на вашей временной шкале. Кроме того, на панели «Свойства» есть кнопка «Изменить» (внизу по умолчанию), которую вы можете использовать, чтобы обрезать аудиоклипы так, как вам нужно.
Как только вы закончите, вам придется опубликовать свой флеш-фильм в swf. Тогда вам придется использовать Swf в Mp3 конвертер, как этот:
http://3d2f.com/programs/25-187-swf-to-mp3-converter-download.shtml
(я не ручаюсь за этого программное обеспечение, это просто пример)
Если вы пытаетесь сделайте все это из кода, с ActionScript 2.0, у вас будет трудный путь вперед.
По существу, вам нужно будет построить массив, полный обрезанных звуковых байт, загруженных в ваш фильм. Тогда в onEnterFrame вы должны были бы называть их в соответствующие моменты времени:
(я не проверял этот код вообще, это просто дать вам основную идею, лол)
var sounds = new Array();
var s0 = new Sound(this);
s0.attachSound("someLinkedSound0");
sounds.push({sound : s0, frame : 100});
var s1 = new Sound(this);
s1.attachSound("someLinkedSound1");
sounds.push({sound : s1, frame : 200});
var s2 = new Sound(this);
s2.attachSound("someLinkedSound2");
sounds.push({sound : s2, frame : 300});
var currentSound = 0;
this.onEnterFrame = function(e) {
if(currentSound < sounds.length && sounds[currentSound].frame == _root.currentFrame) {
sounds[currentSound].start(0,1);
currentSound++;
}
frame++;
}
Мои пример использует звуки, которые импортируются в вашу библиотеку и «связаны», но вы можете загружать звуки через URL с небольшой модификацией.
Вы также можете выполнить нечто подобное с помощью метода, называемого setInterval, если из-за структуры вашего приложения onEnterFrame не вызывается. Надеюсь, что это поможет.
Читайте немного о вспышке SoundChannel, Sound и SoundTransform класс. Все, что вам нужно сделать, это загрузить различные звуки (у вас есть примеры того, как это сделать в документах со вспышкой, которые я связал) и воспроизводить звуки в соответствии с вашей временной шкалой. Каждый звук может воспроизводиться на другом канале, и этим вы можете «смешивать» их. Поддерживайте множество каналов и делайте с ними все, что захотите, в любое время.
Чтобы сохранить их, нужно выполнить немного больше работы, но не невозможно. Here вы можете найти еще один пример, который сохраняет mp3 в swf. Другие методы, которые я не могу сказать, я знаю, но из того, что я видел, вы можете использовать Alchemy и компилировать LAME MP3 Encoder в качестве флеш-библиотеки. Вам также потребуется немного поддержки, потому что вы не можете скачивать файлы с помощью flash. Вы должны отправить их на сервер, тогда сервер должен инициализировать загрузку.
Для смешивания звуков в ActionScript 2 смотрите this link. Это подробное объяснение того, как добиться смешивания звука с AS2. Затем вам нужно посмотреть this link, чтобы получить дополнительную информацию по этому вопросу.
Сохранение смешанной версии вашего звука, поскольку MP3 не будет возможен непосредственно из AS2.Вам придется прибегнуть к сложному сценарию на стороне сервера, который знает, когда смешанные звуки запускаются и останавливаются, и эта информация может генерировать MP3 на сервере. Трудно, но не невозможно.
Или вы можете просто переключиться на AS3, где вы можете create sound at runtime (прокрутите весь путь вниз для примера) и сохраните результат в виде потока байтов.
вы должны использовать as2? – jedierikb
ну, его предпочтительнее, так как часть приложения построена в as2, но если то, что я хочу сделать, не может быть сделано в as2, тогда мне придется убедить других парней в моей команде идти по пути as3. если есть один ... – Irwin
Звуковые API в AS3 - это квантовый скачок от AS2. Вам было бы хорошо посоветовать сделать прыжок. –