2011-08-01 9 views
0

here(元の音源から集めた生のサウンドデータを、()でサンプリングして音を鳴らそうとしています。 mp3サウンドはswfに埋め込まれ、外部から読み込まれることはありません。これは私のコードです:Sound.extract()から取得したデータから音を鳴らします

var soundBytes:ByteArray = new ByteArray(); 
var mp3sound:Sound = Sound(new Sound1_design()); // this is the embedded sound 
mp3sound.extract(soundBytes, int.MAX_VALUE); 

soundBytes.position = 0; 

var rawSound:Sound = new Sound(); 
rawSound.addEventListener(SampleDataEvent.SAMPLE_DATA, playbackSampleHandler); 
rawSound.play(); 

function playbackSampleHandler(event:SampleDataEvent):void 
{ 
    for (var i:int = 0; i < 8192 && soundBytes.bytesAvailable > 0; i++) 
    { 
     var left:Number = soundBytes.readFloat(); 
     var right:Number = soundBytes.readFloat(); 
     event.data.writeFloat(left); 
     event.data.writeFloat(right); 
    } 
} 

これは、結果として生じる音が歪んでいる(それは金属リングのようなものです)点を除いて、どのようにも機能します。私は間違って何をしていますか?

+0

これはグローバルな音質設定に関連していますか? –

答えて

1

mxmlcとFlash CS5でコンパイルしようとしましたが、うまくいきました。私は[Embed(source="..")]の128kbpsと320kbpsのmp3を使ってテストしました。

これはサウンド出力に影響を与える他の設定の可能性がありますが、わかりにくいです。あなたのSWFで非常に低いフレームレートを使用していますか? Flash Playerの設定は、Lotusがコメントで述べたように奇妙なものかもしれません。

+0

あなたはそれを解決しました(しかし間違いなく:))。重要なのは '[Embed(source =" .. ")]'です。私は '[Embed'を使用していませんでした。代わりに.flaにインポートしてから.flaを.swcファイルに"コンパイル "し、そのSWFファイルをFlashDevelopのライブラリに追加してインポートしていました。とにかく.flaからインポートする必要があった他のシンボルがたくさんあった)。何らかの理由で(おそらく別のフラッシュバグ)、これはすべての音を少し歪ませます。しかし、 '[埋め込み]を使うと、完璧に動作します(それはあなたのものと同じです)。ありがとう! – kolufild

関連する問題