Flash にいくつかのサウンド オブジェクトがあります。これらのサウンド ファイルのさまざまなポイントをミックスして 1 つの傑作を作成し、それを mp3 として保存したいと考えています。さまざまな「ミキサー」アプリケーションをオンラインで見てきましたが、これを自分で行うにはどの領域を調べればよいか知りたいです。
3 に答える
音楽や作成しようとしているものを作成するには、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を介してサウンドをロードできます。
アプリケーションの構造が原因でonEnterFrameが呼び出されていない場合は、setIntervalから呼び出されたメソッドを使用して同様のことを実行することもできます。それがお役に立てば幸いです。
ActionScript 2 でのサウンドのミキシングについては、このリンクを参照してください。AS2で音のミキシングを実現する方法を詳しく解説しています。次に、このリンクをチェックして、この件に関する詳細情報を取得する必要があります。
サウンドのミックス バージョンを MP3 として保存することは、AS2 から直接行うことはできません。ミックスされたサウンドがいつ開始および停止されたかを認識し、その情報を使用してサーバー上で MP3 を生成できる、複雑なサーバー側スクリプトに頼る必要があります。トリッキーですが、不可能ではありません。
または、実行時にサウンドを作成できる AS3 に切り替えて(例を下にスクロールします)、結果をバイト ストリームとして保存することもできます。
フラッシュのSoundChannel、Sound、およびSoundTransformクラスについて少し読んでください。あなたがしなければならないのは、さまざまなサウンドをロードすることです(リンクしたフラッシュドキュメントでそれを行う方法の例があります)、タイムラインに従ってサウンドを再生します. 各サウンドは異なるチャンネルで再生でき、これによりそれらを「ミックス」できます。一連のチャネルを維持し、必要なときにいつでも好きなことを行うことができます。
それらを保存するには、もう少し作業が必要ですが、不可能ではありません。ここでは、mp3 を swf に保存する別の例を見つけることができます。私が知っているとは言えませんが、私が見たところによると、Alchemy を使用してLAME MP3 Encoderをフラッシュ ライブラリとしてコンパイルできます。フラッシュを使用してファイルをダウンロードできないため、バックエンドも少し必要になります。それらをサーバーに送信する必要があり、サーバーはダウンロードを初期化する必要があります。