1

私はmp3ファイルをストリーミングするためのこのコードを持っています:

var isPlaying:Boolean;
var pausePoint:Number;

var soundChannel:SoundChannel = new SoundChannel();
var sound:Sound = new Sound( new URLRequest( 'mp3file.mp3' ) );
var volumeAdjust:SoundTransform = new SoundTransform();

soundChannel = sound.play();
isPlaying = true;

function clickPlayPause(evt:MouseEvent) {

    if (isPlaying) 
    {
       pausePoint = soundChannel.position;
       soundChannel.stop();
       //hide pause sign
       control_mc.play_btn.pausee.alpha = 0;
       //show play sign
       control_mc.play_btn.playy.alpha = 1;
       isPlaying = false;

    } else {

        soundChannel = sound.play(pausePoint);
        isPlaying = true;
       //hide play sign
       control_mc.play_btn.playy.alpha = 0;
       //show pause sign
       control_mc.play_btn.pausee.alpha = 1;

    }
}

function clickStop(evt:MouseEvent) {
    if (isPlaying) {
        soundChannel.stop();
        isPlaying = false;
    }
    pausePoint = 0.00;
}

ご覧のとおり、上記のコードには、再生/一時停止ボタンを処理するためのイベント処理関数も含まれています。すべて機能しますが、音楽の再生が実際に停止するまでに 2 秒ほどかかります。また、バックアップの再開にも時間がかかります。これがなぜなのか誰か知っていますか?どうすれば修正できますか?

ありがとう

4

1 に答える 1

0

Greensock トゥイナーには、オーディオをフェード インおよびフェード アウトする機能があり、オーディオ ファイルを聞いているときにラグを隠すのに役立ちます。

Greensock tweener をインポートしてプラグインを有効にする

import com.greensock.*;
import com.greensock.plugins.*;


TweenPlugin.activate([VolumePlugin]);

それから

if(palying){
   TweenLite.to(soundChannel, .5, {volume:0});
}else{
   TweenLite.to(soundChannel, .5, {volume:1});
}
于 2012-10-05T07:33:56.477 に答える