kinugasa.contents.sound

## インタフェース Sound

- すべてのスーパーインタフェース:
    Freeable, Loadable, Nameable
  既知の実装クラスのリスト:
    CachedSound

      public interface Sound
      extends Freeable, Loadable, Nameable

  サウンドファイルの再生や停止などの機能を抽象化するためのインターフェースです.
  全てのサウンドデータは、このインターフェースを実装する必要があります。
  通常の実装では、ロードされていないサウンドに対する操作は、何も行いません。
  また、すでにロードされている場合に再度ロードすることはありません。
  サウンドの名前とは、通常は、パスを除いたファイル名となります。
  たとえば、hoge/piyo/fuga.wavの場合はfuga.wavが名前となります。

- - ### メソッドのサマリー

    All Methods Instance Methods Abstract Methods
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `again()` サウンドを最初まで巻き戻してから再度再生します.
    `Sound` | `free()` コンテンツをメモリから破棄出来るようにします.
    `long` | `getFrameLength()` このサウンドのフレームの最大長を返します.
    `long` | `getFramePosition()` サウンドの現在のフレーム位置を返します.
    `java.lang.String` | `getName()` このインスタンスの一意的な名前を取得します.
    `boolean` | `isLoaded()` このオブジェクトが、すでにロードされているかを検査します.
    `boolean` | `isRunning()` サウンドが再生中かを調べます.
    `Sound` | `load()` コンテンツをロードして展開します.
    `void` | `pause()` サウンドの再生を一時停止します.
    `void` | `play()` サウンドの再生を開始します.
    `void` | `setVolume(float vol)` サウンドの音量を設定します.
    `void` | `stop()` サウンドの再生を停止して最初まで巻き戻します.

- - ### メソッドの詳細

    - #### getName

          java.lang.String getName()

      インタフェースからコピーされた説明: `Nameable`
      このインスタンスの一意的な名前を取得します. 名前はゲームの実行中変更されてはなりません。
      定義:
        `getName` インタフェース内 `Nameable`
      戻り値:
        このインスタンスを識別できる一意的な名前を返します。名前はユーザやプレイヤーが指定する可能性があるため 意味のある文字列を推奨します。

    - #### play

          void play()
             throws NotYetLoadedException

      サウンドの再生を開始します. サウンドがループ機能をサポートしている場合は、設定によってはループ再生を開始します.
      サウンドが既に再生されている場合は何もしません.
      例外:
        `NotYetLoadedException` - サウンドがロードされていない場合に投げることができます。

    - #### again

          void again()

      サウンドを最初まで巻き戻してから再度再生します. 通常はstopを呼び出した後にplayを呼び出します.

    - #### getFramePosition

          long getFramePosition()

      サウンドの現在のフレーム位置を返します.
      戻り値:
        現在のフレーム位置.

    - #### getFrameLength

          long getFrameLength()

      このサウンドのフレームの最大長を返します.
      戻り値:
        フレームの最大長.

    - #### stop

          void stop()

      サウンドの再生を停止して最初まで巻き戻します.

    - #### pause

          void pause()

      サウンドの再生を一時停止します. 次回playが呼び出されたとき、pauseが呼ばれた位置から再生します.

    - #### isRunning

          boolean isRunning()

      サウンドが再生中かを調べます.
      戻り値:
        再生中の場合はtrue,そうでないか、ロードされていない場合はfalse.

    - #### setVolume

          void setVolume(float vol)

      サウンドの音量を設定します.
      パラメータ:
        `vol` - 新しい音量.0fで無音になる.

    - #### load

          Sound load()

      インタフェースからコピーされた説明: `Loadable`
      コンテンツをロードして展開します. すでにロードされている場合の動作は、実装によって異なります。
      再度ロードすることで、データを最新のものに更新するなど、効果のある場合には、すでにロードされている場合でも 再度ロードすることがあります。
      定義:
        `load` インタフェース内 `Loadable`
      戻り値:
        インスタンス化と同時にロードするために、thisインスタンスを返します。戻り値は 適切な型にキャストする必要があります。

    - #### free

          Sound free()

      インタフェースからコピーされた説明: `Freeable`
      コンテンツをメモリから破棄出来るようにします. 実際にメモリから破棄されるタイミングは、GCに依存します。
      まだロードされていないか、開放済みのオブジェクトを開放した場合には、通常は何も行いません。
      定義:
        `free` インタフェース内 `Freeable`
      戻り値:
        デフォルトでロードされる実装を、インスタンス化と同時に開放するためにthisインスタンスを返します。
        戻り値は適切な型にキャストする必要があります。通常、このような実装は効率的でないため推奨されません。

    - #### isLoaded

          boolean isLoaded()

      インタフェースからコピーされた説明: `Loadable`
      このオブジェクトが、すでにロードされているかを検査します.
      定義:
        `isLoaded` インタフェース内 `Loadable`
      戻り値:
        ロード済みである場合はtrueを返します。