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の再生時間の指定方法