Soundクラス
Soundは、URIによって指定された音声ファイルを表します。
インスタンスが有効な間、AR.CONST.STATEで定義された状態を遷移します。ある特定の時点で、インスタンスは正確に以下のいずれか1つの状態をとります。
- INITIALIZED
- LOADING
- LOADED
- PLAYING
- PAUSED
- ERROR
インスタンスが有効な間の、基本的な状態遷移は以下のとおりです。
- new AR.Sound(...)によるインスタンスの生成 -> INITIALIZE
- sound.load() -> LOADING
- ロードの完了 -> LOADED
- 再生の開始 -> PLAYING
- 再生の一時停止 -> PAUSED
- 再生の再開 -> PLAYING
- 再生の完了 -> LOADED
- sound.destroy()の呼び出し -> インスタンスの破棄
重要な状態変更時には、システムによってトリガー(onLoaded()、onFinishedPlaying()、onError())が呼び出されます。アプリケーションでこれらのイベントに反応するには、トリガーに対してカスタム関数を指定します。トリガーにカスタム関数が指定されていない場合、そのトリガーは発生しません。トリガーはインスタンス生成時に指定することも、後で指定することもできます。
プリロードが必要ない場合は、初期化された直後に音声ファイルを再生することもできます。この場合、音声ファイルはストリーミングされ、デバイスには保存されません。ただし、まずロードしなければならないため、再生に遅延が生じる可能性があります。ストリーミング再生の場合、状態はLOADING、LOADED、PLAYING、PAUSEDには変わらず、INITIALIZED状態にとどまることに注意してください。それでもトリガーは発生します。
var sound = new AR.Sound("http://www.myuri.com/sound.mp3", { onLoaded : function(){sound.play();}, onError : function(){ // alert the user that the sound file could not be loaded }, }); sound.onFinishedPlaying = function(){alert("Playing finished");}; sound.load();
コンテンツのリロードはできません。音声ファイルがINITIALIZED以外の状態にあるときにsound.load()を呼び出しても何も起こりません。
音声ファイルがLOADING、PLAYINGの状態にあるときにsound.play()を実行しても何も起こりません。
LOADED状態にある音声ファイルが不要になったら、必ずdestroy()を呼び出してデバイス上のリソースをクリーンアップしてください。
一時停止された音声ファイルの再生を再開する方法は2通りあります。resume()を呼び出すと、一時停止した時点から再生が続行されます。play()を呼び出すと、最初から再生されます。音声ファイルがINITIALIZED状態にあるときにresume()を呼び出した場合は、play(1)と同じように動作します。
ERROR状態は、音声ファイルのロード中または再生中に問題が検出されたことを示します。
コンストラクター
項目索引
メソッド
destroy
()
オブジェクトを破棄します。
load
()
音声ファイルのロードプロセスを開始します。ロードされた音声ファイルは、直接再生するためにデバイスに保存されます。したがって、システムリソースを消費します。音声ファイルが不要になったら、たとえば、context.onExit()トリガーの実行時にsound.destroy()を呼び出し破棄することを推奨します。
pause
()
この音声ファイルの再生を一時停止します。一時停止した時点から再生を再開するには、resume()を呼び出します。一時停止した状態でplay()を呼び出すと、最初から再生されます。
play
-
loopTimes
音声ファイルを再生します。
パラメーター:
-
loopTimes
(デフォルト値:1
)Number オプション音声ファイルを連続して再生する回数を指定します。負の値を指定すると無限にループします。
resume
()
一時停止した音声ファイルの再生を一時停止した時点から再開します。それ以外のケースでresume()を呼び出した場合は、play(1)を呼び出したときと同じように動作します。
stop
()
この音声ファイルの再生を停止します。同じ音声ファイルに対してplay()を複数回呼び出した場合、stop()はこの音声ファイルの実行中の再生をすべて停止します。stop()が呼び出された後、onFinishedPlaying()トリガーは実行されません。
プロパティ
state
Number
Soundの現在の状態。このプロパティは読み取り専用であり、システムによって変更されます。手動で変更しようとすると例外が発生します。有効な値はAR.CONST.STATEで定義されています。
イベント
onError
このトリガーは、音声ファイルの状態がERRORに変更されたときに発生します。
このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者はonErrorトリガーにカスタム関数を指定することで、カスタム機能を追加できます。
onFinishedPlaying
このトリガーは、音声ファイルの状態がPLAYINGからLOADEDまたはINITIALIZEDに変更されたときに発生します。
このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者はonFinishedPlayingトリガーにカスタム関数を指定することで、カスタム機能を追加できます。
onLoaded
このトリガーは、音声ファイルの状態がLOADINGからLOADEDに変更されたときに発生します。
このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者はonLoadedトリガーにカスタム関数を指定することで、カスタム機能を追加できます。