Динамическое аудио поколение Actionscript 3

Я использую профилировщик YourKit java , который позволяет Вам измерить этот вид вещи, и намного больше, но использование своего собственного формата вместо того, чтобы анализировать журнал. Это может сделать больше под Java 5, но должно работать под 1,4.

8
задан BefittingTheorem 20 September 2009 в 09:45
поделиться

4 ответа

So it seems that out of Silverlight and Flash, that Flash beats Silverlight on dynamic audio generation features, (which surprised me considering how basic audio support is in Flash). It seems Silverlight cannot generate dynamic audio at all, and Flash can only do so officially since version 10 of the player.

I can find very little information on the future of dynamic audio on both platforms, but Flash has the most active discussions at the moment.

0
ответ дан 5 December 2019 в 22:19
поделиться

Есть способы сделать это, требующие небольшого взлома. Я не помню точную механику, но вы могли бы взглянуть (или использовать) существующие потоковые библиотеки, такие как StandingWave: http://code.google.com/p/standingwave/ или прочее в Popforge: http://code.google.com/p/popforge/

Надеюсь, он может дать больше информации, чем я могу прямо здесь. :)

1
ответ дан 5 December 2019 в 22:19
поделиться

Вы можете попробовать The Synthesis ToolKit в AS3 , который перенесен из C ++ с помощью me:)

Он отличается от Standingwave и popforge , STK в AS3 предоставляет вам реальные инструменты, такие как флейта и кларнет, которые не используются в первых двух.

2
ответ дан 5 December 2019 в 22:19
поделиться

Начиная с Flash Player 10 и более поздних версий вам не нужно выполнять какие-либо хакерские действия. Есть API для динамической генерации звука.

В этой записи блога есть краткое введение . Его код читает образцы из mp3, но вы можете писать образцы как хотите.

Как всегда , в документации также есть много информации, а также этот пример кода, который должен помочь вам довольно быстро.

var mySound:Sound = new Sound();
function sineWaveGenerator(event:SampleDataEvent):void {
    for ( var c:int=0; c<8192; c++ ) {
        event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
        event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
    }
}

mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator);
mySound.play();
3
ответ дан 5 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: