kinugasa.contents.sound
クラス CachedSound

java.lang.Object
  上位を拡張 kinugasa.contents.sound.CachedSound
すべての実装されたインタフェース:
Freeable, Nameable, Sound

public class CachedSound
extends java.lang.Object
implements Sound

内部キャッシュつきのサウンドの実装です.
WAVEファイルを再生する際の、最も一般的なサウンドの実装となります。

バージョン:
2.0.0 - 2013/01/13_18:46:43
作成者:
Dra0211

フィールドの概要
private  SoundBuilder builder
          このサウンドを構築したビルダ.
private static java.util.HashMap<SoundBuilder,CachedSound> CACHE
          サウンドのキャッシュデータ.
private  javax.sound.sampled.Clip clip
          このサウンドのストリーム.
private  java.util.HashMap<javax.sound.sampled.Control.Type,java.lang.Float> ctrls
          ロード時に適用するコントロール.
private  LoopPoint lp
          このサウンドのループ設定.
 
コンストラクタの概要
private CachedSound(SoundBuilder builder)
          サウンドを作成.
 
メソッドの概要
 void again()
          サウンドを最初まで巻き戻してから再度再生します.
(package private) static CachedSound create(SoundBuilder b)
          新しいキャッシュサウンドを構築します.
 CachedSound free()
          コンテンツをメモリから破棄出来るようにします.
 SoundBuilder getBuilder()
          このサウンドを構築したビルダを取得します.
 long getFrameLength()
          このサウンドのフレームの最大長を返します.
 long getFramePosition()
          サウンドの現在のフレーム位置を返します.
 java.lang.String getName()
          このインスタンスの一意的な名前を取得します.
 boolean isLoaded()
          このオブジェクトが、すでにロードされているかを検査します.
 boolean isRunning()
          サウンドが再生中かを調べます.
 CachedSound load()
          コンテンツをロードして展開します.
 void pause()
          サウンドの再生を一時停止します.
 void play()
          サウンドの再生を開始します.
private  void setControl(javax.sound.sampled.Control.Type t, float val)
          コントロールをバッファリングする.
private  void setLoopPoints(LoopPoint p)
          ループ位置を設定します.
 void setVolume(float vol)
          サウンドの音量を設定します.
 void stop()
          サウンドの再生を停止して最初まで巻き戻します.
 java.lang.String toString()
           
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

CACHE

private static final java.util.HashMap<SoundBuilder,CachedSound> CACHE
サウンドのキャッシュデータ.


builder

private SoundBuilder builder
このサウンドを構築したビルダ.


clip

private transient javax.sound.sampled.Clip clip
このサウンドのストリーム.


lp

private LoopPoint lp
このサウンドのループ設定.


ctrls

private java.util.HashMap<javax.sound.sampled.Control.Type,java.lang.Float> ctrls
ロード時に適用するコントロール.

コンストラクタの詳細

CachedSound

private CachedSound(SoundBuilder builder)
サウンドを作成. このコンストラクタでは、f.existの検査はしない.

パラメータ:
builder - ファイルインスタンス.
メソッドの詳細

create

static CachedSound create(SoundBuilder b)
新しいキャッシュサウンドを構築します.

パラメータ:
b - サウンドの構築に使用するビルダ.
戻り値:
ビルダの設定で作成されたキャッシュサウンド.

setControl

private void setControl(javax.sound.sampled.Control.Type t,
                        float val)
コントロールをバッファリングする.

パラメータ:
t - コントロールのタイプ.
val - 値.

setLoopPoints

private void setLoopPoints(LoopPoint p)
ループ位置を設定します.

パラメータ:
p - ループ位置.

setVolume

public void setVolume(float vol)
インタフェース Sound の記述:
サウンドの音量を設定します.

定義:
インタフェース Sound 内の setVolume
パラメータ:
vol - 新しい音量.0fで無音になる.

play

public void play()
          throws NotYetLoadedException
インタフェース Sound の記述:
サウンドの再生を開始します. サウンドがループ機能をサポートしている場合は、設定によってはループ再生を開始します.
サウンドが既に再生されている場合は何もしません.

定義:
インタフェース Sound 内の play
例外:
NotYetLoadedException - サウンドがロードされていない場合に投げることができます。

again

public void again()
インタフェース Sound の記述:
サウンドを最初まで巻き戻してから再度再生します. 通常はstopを呼び出した後にplayを呼び出します.

定義:
インタフェース Sound 内の again

getFramePosition

public long getFramePosition()
インタフェース Sound の記述:
サウンドの現在のフレーム位置を返します.

定義:
インタフェース Sound 内の getFramePosition
戻り値:
現在のフレーム位置.

getFrameLength

public long getFrameLength()
インタフェース Sound の記述:
このサウンドのフレームの最大長を返します.

定義:
インタフェース Sound 内の getFrameLength
戻り値:
フレームの最大長.

stop

public void stop()
インタフェース Sound の記述:
サウンドの再生を停止して最初まで巻き戻します.

定義:
インタフェース Sound 内の stop

pause

public void pause()
インタフェース Sound の記述:
サウンドの再生を一時停止します. 次回playが呼び出されたとき、pauseが呼ばれた位置から再生します.

定義:
インタフェース Sound 内の pause

isRunning

public boolean isRunning()
インタフェース Sound の記述:
サウンドが再生中かを調べます.

定義:
インタフェース Sound 内の isRunning
戻り値:
再生中の場合はtrue,そうでないか、ロードされていない場合はfalse.

load

public CachedSound load()
                 throws ContentsIOException,
                        SoundStreamException
インタフェース Freeable の記述:
コンテンツをロードして展開します. すでにロードされている場合の動作は、実装によって異なります。
再度ロードすることで、データを最新のものに更新するなど、効果のある場合には、すでにロードされている場合でも 再度ロードすることがあります。

定義:
インタフェース Freeable 内の load
定義:
インタフェース Sound 内の load
戻り値:
インスタンス化と同時にロードするために、thisインスタンスを返します。戻り値は 適切な型にキャストする必要があります。
例外:
ContentsIOException
SoundStreamException

free

public CachedSound free()
インタフェース Freeable の記述:
コンテンツをメモリから破棄出来るようにします. 実際にメモリから破棄されるタイミングは、GCに依存します。
まだロードされていないか、開放済みのオブジェクトを開放した場合には、通常は何も行いません。

定義:
インタフェース Freeable 内の free
定義:
インタフェース Sound 内の free
戻り値:
デフォルトでロードされる実装を、インスタンス化と同時に開放するためにthisインスタンスを返します。
戻り値は適切な型にキャストする必要があります。通常、このような実装は効率的でないため推奨されません。

isLoaded

public boolean isLoaded()
インタフェース Freeable の記述:
このオブジェクトが、すでにロードされているかを検査します.

定義:
インタフェース Freeable 内の isLoaded
定義:
インタフェース Sound 内の isLoaded
戻り値:
ロード済みである場合はtrueを返します。

toString

public java.lang.String toString()
オーバーライド:
クラス java.lang.Object 内の toString

getName

public java.lang.String getName()
インタフェース Nameable の記述:
このインスタンスの一意的な名前を取得します. 名前はゲームの実行中変更されてはなりません。

定義:
インタフェース Nameable 内の getName
定義:
インタフェース Sound 内の getName
戻り値:
このインスタンスを識別できる一意的な名前を返します。名前はユーザやプレイヤーが指定する可能性があるため 意味のある文字列を推奨します。

getBuilder

public SoundBuilder getBuilder()
このサウンドを構築したビルダを取得します. ビルダへの設定は、意味がありません。

戻り値:
このサウンドを構築するために作成されたビルダのインスタンスを返します。