##### Sound Library - One Shotモジュールコントロール関数

# sdShotSetPlayTime

One Shotの再生時間の設定

### 書式

> `SDE_ERR sdShotSetPlayTime( handle, scale_type, time_value )
> SDSHOT handle
> const SDE_SHOT_PLAY_TIME scale_type
> Sint32 time_value
> `

### 引数

> handle | One Shotポートのハンドル
> scale_type | 設定する時間のタイプ
> time_value | 再生時間

### 戻り値

> SDE_ERR_NOTHING | エラーなし
> SDE_ERR_NO_INIT | Sound Library が初期化されていない
> SDE_ERR_HANDLE_NULL | ハンドルがNULL
> SDE_ERR_PRM_OVER_RANGE | 引数が正常な値の範囲外
> SDE_ERR_HOST_CMD_BUF_NO_ENOUGH | ホストコマンドのバッファが不足

### 解説

> 指定したポートでOne Shotストリームの再生時間を設定します。

> 再生時間は引数time_valueで指定し、この引数のタイプは引数 scale_typeによって指定します。

> 引数scale_type指定するタイプは次のように定義されています。

> 定義 | 意味
> SDE_SHOT_PLAY_TIME_RELATIVE | 相対値(One Shot Data内の時間パラメータから直接加減した時間を利用する)
> SDE_SHOT_PLAY_TIME_RATIO | 割合値(One Shot Data内の時間パラメータから割合を算出した時間を利用する)
> SDE_SHOT_PLAY_TIME_ABSOLUTE | 絶対値(単位はミリ秒)

### 用例

>     SDSHOT	gShotHandle;

>     UserInit()
>     {
>     	sdShotOpen( &gShotHandle);
>     	/* gShotHandleのポートは常に100msでOne Shot Dataを再生する */
>     	sdShotSetPlayTime( SDE_SHOT_PLAY_TIME_ABSOLUTE, 100);

>     	/* gShotHandleのポートは常にOne Shot Data内の再生時間していを2.8倍して再生する */
>     	sdShotSetPlayTime( SDE_SHOT_PLAY_TIME_RATIO, 0x280);

>     	/* gShotHandleのポートは常にOne Shot Data内の再生時間していより100ms短く再生する */
>     	sdShotSetPlayTime( SDE_SHOT_PLAY_TIME_RELATIVE, -100);
>     }

### 備考

> Sound Driverは4msのタイミングで動作しているので、設定する時間を4ms以下にしても意味がありません。 また、数msの誤差が出ることもあります。 この関数の効果はサウンドクリエイタが波形のループ再生を指定した時のみ有効です。もしうまく効果が出ない時はサウンドクリエイタに確認してください。

> 定期的なタイミングで行うアプリケーションで用意したサーバ関数などで、V同期で変化のない値を毎回設定し続けることは効率的なHost Command Bufferの利用方法でないばかりか、Sound Driverの負荷を増やす原因になります。 なるべく行わないでください。

### 参照

> SDE_SHOT_PLAY_TIME() | One Shotの再生時間の指定方法

sdShotSetPlayTime

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000