#include <nnsys/snd.h>BOOL NNS_SndArcStrmStartEx2( NNSSndStrmHandle* handle, int playerNo, int playerPrio, int strmNo, u32 offset, NNSSndStrmCallback strmCallback, void* strmCallbackArg, NNSSndArcStrmCallback sndArcStrmCallback, void* sndArcStrmCallbackArg );
handle |
ストリームハンドルのポインタです。 |
playerNo |
プレイヤー番号です。 |
playerPrio |
プレイヤープライオリティです。値の範囲は0〜127で、大きいほど優先度が高くなります。 |
strmNo |
ストリーム番号です。 |
offset |
開始オフセット位置です。msec単位です。 |
strmCallback |
ストリームコールバック関数のポインタです。 |
strmCallbackArg |
ストリームコールバック関数のユーザー引数です。 |
sndArcStrmCallback |
サウンドアーカイブストリームコールバック関数のポインタです。 |
sndArcStrmCallbackArg |
サウンドアーカイブストリームコールバック関数のユーザー引数です。 |
コールバック関数を登録して、ストリームを再生します。
あらかじめ、 NNS_SndArcStrmInit関数で、 サウンドアーカイブストリームライブラリが初期化されている必要があります。
ストリームハンドルhandleは、あらかじめ、NNS_SndStrmHandleInit関数で、1度だけ初期化しておかなければなりません。
この関数を呼びだすと、ストリームハンドルに既に結びつけられていたストリームは切り離されます(停止するわけではありません)。
再生に成功すると、ストリームハンドルにストリームが結びつけられます。
プレイヤー番号playerNoと、
プレイヤープライオリティplayerPrioに、
-1を指定すると、サウンドデータで設定したパラメータが使用されます。
開始オフセット位置offsetに、0以外の値を入れると、ストリームデータの途中から再生することができます。
ストリームコールバック関数strmCallbackは、再生中に定期的に呼びだされます。
このコールバック関数内で、再生波形データを加工することができます。
ストリームコールバック関数のユーザー引数strmCallbackArgは、
ストリームコールバック関数strmCallbackの引数にそのまま渡されます。
ストリームコールバック関数の登録が不要の場合は、NULLを入れます。
ストリームコールバック関数については、NNSSndStrmCallbackの説明を
参照してください。
サウンドアーカイブストリームコールバック関数sndArcStrmCallbackは、
特定のタイミングで呼びだされます。
複数のストリームデータをリアルタイムにつなげて再生することなどができます。
サウンドアーカイブストリームコールバック関数のユーザー引数sndArcStrmCallbackArgは、
サウンドアーカイブストリームコールバック関数sndArcStrmCallbackの引数にそのまま渡されます。
サウンドアーカイブストリームコールバック関数の登録が不要の場合は、NULLを入れます。
サウンドアーカイブストリームコールバック関数については、
NNSSndArcStrmCallbackの説明を
参照してください。
ストリーム再生の前に、まずストリームバッファに始めのデータをロードする必要があるため、 実際に音が鳴り始めるのは、数フレーム遅れます。 即座に再生を開始したい場合には、前もってストリームバッファへのデータのロードを済ませておく必要があります。 そのためには、NNS_SndArcStrmPrepare関数を使います。
ストリーム再生に使用するチャンネルは、この関数内で確保されます。確保するチャンネルがシーケンス再生で使用中だった場合、 発音中の音は強制的に止められます。 チャンネル確保のタイミングを制御したい場合は、前もって NNS_SndArcStrmAllocChannel関数を呼びだします。
ストリームデータがステレオだった場合、チャンネル0は左から、チャンネル1は右から出力されます。 この設定は、NNS_SndArcStrmSetChannelPan関数で変更することができます。
再生の失敗には、以下の原因が考えられます。
NNS_SndArcStrmInit, NNS_SndStrmHandleInit, NNSSndStrmCallback, NNSSndArcStrmCallback, NNS_SndArcStrmPrepare, NNS_SndArcStrmAllocChannel, NNS_SndArcStrmSetChannelPan
2004/11/26 初版