T2MediaPlayer
仕様
T2MediaPlayerクラスでは、音の再生方法にSE(効果音用)とBGM(背景音用)の2つがあります。
- SE
- 一度再生すると音声データの最後まで再生します。再生途中で細かい制御はできません。
- 他の音といくつも重ねて鳴らすことができます
- BGM
- 1つの音声データを再生、停止、一時停止/再開、繰り返し再生などができます
- 再生中に音量、再生速度、音の位置などを変更できます
- 現在、BGMプレイヤーが16個用意されています
- BGMプレイヤーとは、BGMの再生を管理するオブジェクトです
- 1つのBGMプレイヤーにつき、1つの音声データを再生する仕組みとなっています
- 最大16個の音をBGMとして重ねて鳴らすことができます
- BGMプレイヤーにはそれぞれ0~15の番号が割り振られています。番号を指定して個々のBGMプレイヤーに対して制御ができます。
- 番号を指定しない場合、0番目のBGMプレイヤーに対して制御を行います。
- 例えば、0番目のBGMプレイヤーにBGM1を音量100%で再生し、同時に1番目にBGM2を音量0%で再生させておき、音量を徐々に変えるように処理すれば、BGM1からBGM2に音楽が変わっていくという演出なども可能です
SEは効果音、BGMは背景音とそれぞれに特化した作りになっていますが、
効果音を細かく制御したい場合はBGM系のメソッドで効果音を再生することも可能です。
音量の仕様
- マスター音量
- SEマスター音量
- SE全体の音量です
- SEの実際の音量は以下の式となります
- マスター音量 × SEマスター音量 × SE再生時に(playSEメソッドで)設定した音量
- BGMマスター音量
- BGM全体の音量です
- BGMの実際の音量は以下の式となります
- マスター音量 × BGMマスター音量 × 該当のBGMプレイヤーの音量
機能制限
MP3、Ogg、AAC、WAVの音声ファイルは、SEとBGMのどちらも再生可能です。全ての機能が使えます。
MidiファイルはBGMでのみ再生可能です。
また、一部BGMメソッドで設定しても演奏自体に反映されないメソッドがあります。
音声データは再生時にデコード
ゲーム開始後一度も再生していない音声データは、初回再生時は再生されるまで時間がかかる場合があります。
ある音声データを初めて再生(playSE, playBGMメソッド呼び出し)した場合、
デコードが非同期に行われ、デコード完了すると再生します。(Midiのみデコードが同期処理で行われます)
decodeSoundメソッドで再生する前にあらかじめデコードすることができます。
メソッド
SE のメソッド
- playSE
- stopSE(sourceObj)
- playSE()で鳴らしたSE(効果音)を停止します。
- sourceObjにはplaySE()の戻り値を指定します
- stopAllSE
BGMプレイヤー番号省略版メソッド
※0番目のBGMプレイヤーに対するメソッドになります
BGMプレイヤー番号指定版メソッド
BGMプレイヤー番号省略版メソッド
のメソッド名の末尾に"ID"を付け、第1引数にBGMプレイヤー番号(0-15)
を指定します。
第1引数(id)に指定したBGMプレイヤーに対してメソッドが実行されます。
- playBGMID(id, idx, loop, offset, loopStart, loopEnd)
- stopBGMID(id)
- pauseBGMID(id)
- resumeBGMID(id)
- getBGMVolumeID(id)
- setBGMVolumeID(id, vol)
- getBGMTempoID(id)
- setBGMTempoID(id, tempo)
*1
- getBGMPanID(id)
- setBGMPanID(id, pan)
*1
- isBGMLoopID(id)
- setBGMLoopID(id, loop)
- getBGMLoopStartTimeID(id)
- setBGMLoopStartTimeID(id, loopStart)
*1
- getBGMLoopEndTimeID(id)
- setBGMLoopEndTimeID(id, loopEnd)
*1
- getBGMCurrentTimeID(id)
- getBGMLengthID(id)
- getPlayingBGMNameID(id)
BGMプレイヤー全体のメソッド
- getBGMPlayerMax()
- BGMプレイヤーの数を取得します。現在16が返ります
- allStopBGM()
- 0~15番目の全てのBGMプレイヤーのBGM再生を停止します
- allResetBGM()
- 0~15番目の全てのBGMプレイヤーのBGM再生を停止し、音量、再生速度、パンを初期値に戻します
- マスター音量、SEマスター音量、BGMマスター音量も初期値に戻します
SE/BGM共通のメソッド
- getMasterVolume()
- setMasterVolume(vol)
- マスター音量を設定します
- 再生中のBGMは即座に音量が反映されます
- getSEMasterVolume()
- setSEMasterVolume(vol)
- SEマスター音量を設定します
- この設定以降に再生するSEに音量が反映されます
- 再生中のSEには音量は反映されません
- getBGMMasterVolume()
- setBGMMasterVolume(vol)
- BGMマスター音量を設定します
- 再生中のBGMは即座に音量が反映されます
音声データ関連のメソッド
- decodeSound(name, callbacks)
- 音声データをデコードします
- name
- 再生するBGMの名前(音声リストで指定した名前)を指定します
- callbacks(省略可)
- デコード完了時にcallbacks.succ(name)がコールバックされ、デコード失敗時callbacks.err(name, errorID)がコールバックされます
- コールバックを受け取る場合は、decodeSoundメソッドの前に下記のように記述します
- callbacks={};callbacks.succ=(name){処理};callbacks.err=(name, errorID){処理};
- removeDecodedSoundData(name)
- 音声データのデコード済みデータを削除します(メモリ使用量を抑えるときに使います)
- name
- 再生するBGMの名前(音声リストで指定した名前)を指定します
- allRemoveDecodedSoundData()
- 全ての音声データのデコード済みデータを削除します(メモリ使用量を抑えるときに使います)
*1
Midi再生時の場合、このメソッドの設定は演奏に反映されません
.