FlxSound

API Reference > flixel.system > FlxSound

FlxSound

サウンド再生を行うクラスです。ストリーム再生やサウンドエフェクトをかけることできます



フィールド

x:Float: 再生座標(X)

y:Float: 再生座標(Y)

persist:Bool : FlxStateを切り替えたときに破棄するかどうか。デフォルトはtrue

name:String: ID3のソング名。ストリーミングサウンドのみ有効

artist:String : ID3のアーティスト名。ストリーミングサウンドのみ有効

amplitude:Float : ステレオチャンネルの平均振り幅

amplitudeLeft:Float : 左ステレオチャンネルの振り幅

amplitudeRight:Float : 右ステレオチャンネルの振り幅

autoDestroy:Bool : 再生終了時に自動で破棄するかどうか。デフォルトはfalse

onComplete:Void->Void : 再生完了時のコールバック関数

pan:Float : パン。-1で左、1で右。0は中央

playing:Bool : 再生中かどうか

読み取り専用

volume:Float : 音量

pitch:Float : 音の高さ

初期値は 1

time:Float : 再生位置

読み取り専用。単位はミリ秒

group:FlxSoundGroup? : 所属するサウンドグループ

looped:Bool : ループするかどうか

loopTime:Float : 区間ループの開始時間

単位はミリ秒

fadeTween:FlxTween : サウンド音量のTween

fadeIn() / fadeOut() で使用します

length : サウンドの長さ

単位はミリ秒

メソッド

play() : 再生を開始します

  • 引数
    • ForceRestart?:Bool = false : 最初から再生するかどうか
  • 戻り値:FlxSound : thisポインタ

proximity() : 距離での音の減衰を有効にします

  • 引数
    • X:Float : 音のX座標
    • Y:Float : 音のY座標
    • TargetObject?:FlxObject : 追跡するオブジェクト
    • Radius:Float : 音の再生が有効な半径
    • Pan:Bool=true : パンを有効にするかどうか(デフォルトはtrue)
  • 戻り値:FlxSound : thisポインタ

resume() : 再生を再開します

pause()メソッドで停止したサウンドを再開します

pause() : 再生を一時停止します

一時停止したサウンドはresume()メソッドで再会できます

stop() : 再生を停止します

fadeOut() : フェードアウト再生をします

  • 引数
    • Duration:Float = 1 : フェードアウト時間(秒)
    • ?To = 0 : フェードアウト完了後の音量
    • ?onComplete:FlxTween->Void : フェードアウト完了後のコールバック
  • 戻り値:FlxSound : thisポインタ

fadeIn() : フェードイン再生します

  • 引数
    • Duration:Float = 1 : フェードイン時間(秒)
    • From:Float = 0 : フェードイン開始時の音量
    • To:FLoat = 1 : フェードイン完了後の音量
    • ?onComplete:FlxTween->Void : フェードアウト完了後のコールバック
  • 戻り値:FlxSound : thisポインタ

onComplete() : 再生完了時のコールバック関数

  • 戻り値:Void

Tips

BGMを区間ループする

区間ループとは、BGMにイントロ区間とループ区間がある場合に、ループ区間内だけを繰り返すことです。

001.png

このように、イントロがあって、その後にループする部分があるBGMです。

区間ループするには、ループ開始がどこから始まるのかという情報が必要です。その情報はサウンド加工ツールなどで調べることができます。例えば、フリーソフトの「Audacity」を使う場合は、イントロの終端部分をクリックすると、画面下の「選択開始」というところに表示されます。

002.png

この例の場合は、13.710秒がイントロの終端(ループ開始)となります。 この情報がわかれば、後はFlxSound.loopTimeを使うと、区間ループができます。

  // BGM "001.ogg" を再生
  var sound:FlxSound = FlxG.sound.music.play("assets/music/001.ogg");
  // ループ区間を設定 (13.710秒をループ開始とする)
  sound.loopTime = 13710;