#include <nnsys/snd.h>BOOL NNS_SndArcPlayerStartSeqArc( NNSSndHandle* handle, int seqArcNo, int index );BOOL NNS_SndArcPlayerStartSeqArcEx( NNSSndHandle* handle, int playerNo, int bankNo, int playerPrio, int seqArcNo, int index );
handle |
サウンドハンドルのポインタです。 |
seqArcNo |
シーケンスアーカイブ番号です。 |
index |
シーケンスアーカイブのインデックス番号です。 |
playerNo |
プレイヤー番号です。 |
bankNo |
バンク番号です。 |
playerPrio |
プレイヤープライオリティです。値の範囲は0〜127で、大きいほど優先度が高くなります。 |
シーケンスアーカイブを再生します。
NNS_SndArcPlayerStartSeqArc関数では、プレイヤー番号などのパラメータは、サウンドデータでの指定に基づいて設定されます。 NNS_SndArcPlayerStartSeqArcEx関数を使うと、プレイヤー番号やバンク番号、プレイヤープライオリティをプログラム側で指定できます。ただし、 playerNo、bankNo、playerPrioの引数のうち、-1を指定したものは、サウンドデータで設定したパラメータが使用されます。
あらかじめ、 NNS_SndArcInit関数または、 NNS_SndArcInitOnMemory関数で サウンドアーカイブが初期化されている必要があります。
サウンドハンドルhandleは、あらかじめ、NNS_SndHandleInit関数で、1度だけ初期化しておかなければなりません。
この関数を呼びだすと、サウンドハンドルに既に結びつけられていたシーケンスは切り離されます(停止するわけではありません)。
再生に成功すると、サウンドハンドルにシーケンスが結びつけられます。
関数内では、必要なサウンドデータがメモリ上にあるかどうかを確認するために、 NNS_SndArcGetFileAddress関数を呼びだします。 必要なデータがメモリ上にない場合、関数は失敗します。
後でNNS_SndPlayerStopSeqBySeqArcNo関数を使って、 シーケンスアーカイブ番号を指定してシーケンスを停止できるように、 関数内でNNS_SndPlayerSetSeqArcNo関数を呼びだしています。
サウンドデータで設定されている、発音プライオリティや音量の値を再設定したい場合は、シーケンス開始直後に、 NNS_SndPlayerSetChannelPriority関数や、 NNS_SndPlayerSetInitialVolume関数を呼びだします。
再生の失敗には、以下の原因が考えられます。
NNS_SndArcInit, NNS_SndArcInitOnMemory, NNS_SndHandleInit, NNS_SndArcGetFileAddress, NNS_SndPlayerStopSeqBySeqArcNo, NNS_SndPlayerSetSeqArcNo, NNS_SndPlayerSetChannelPriority, NNS_SndPlayerSetInitialVolume
2004/11/30 返り値の型が間違っていたのを修正
2004/06/01 NNS_SndArcPlayerStartSeqArcWithPlayerNoを拡張して、
NNS_SndArcPlayerStartSeqArcExに変更。
2004/04/19 NNS_SndArcPlayerStartSeqArc, NNS_SndArcPlayerStartSeqArcWithPlayerNoのマニュアルを統合
2004/04/01 初版