『 FlashPlayer11のサウンド新機能を試してみる 』
2011 年 10 月 14 日ブログを書くのが久しぶり過ぎて、世の中ではすでにFlashPlayer11の話題で持ちきりのようで。
アップデートの目玉であるStage3Dに関してはいろんな人が取り上げているので、ちょっと地味なSoundの新機能をちょちょいと試してます。Sound.LoadPCMFromByteArrayを使えば、ByteArrayに格納されたPCMデータからSoundインスタンスを生成できるようになります。ごにょごにょ加工したByteArrayをSoundインスタンスに変換しておくことで、SampleDataEventでサウンドを動的に生成し続けなくても、同じ音であれば低コストで繰り返し再生できるようになりますね。
以下、SoundインスタンスからByteArrayにデータを抽出して、再びSoundインスタンスに変換し直しただけのサンプルです。クリックで再生します。音量注意。
見てもらえれば分かりますが、再生終了時の挙動が変です(FlashPlayer11.0.1.152現在)。ちょうど、SampleDataEventでサウンドを動的生成する場合における、最後の方のサンプルデータをずっと入れ続けたような状態でしょうか。調べてみるとSound.lengthが取れておらず0のままで、SoundChannel.positionがずっと進み続けています。SoundCompleteイベントも発行されません。
・・・もうちょっと待てば改善されるかな。それともやり方間違ってるのかな。