NNS_SndArcPlayerStartSeqArc*

構文

#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で、大きいほど優先度が高くなります。

返り値

再生に成功した場合は、TRUEを返します。失敗すると、FALSEが返ります。

説明

シーケンスアーカイブを再生します。

NNS_SndArcPlayerStartSeqArc関数では、プレイヤー番号などのパラメータは、サウンドデータでの指定に基づいて設定されます。 NNS_SndArcPlayerStartSeqArcEx関数を使うと、プレイヤー番号やバンク番号、プレイヤープライオリティをプログラム側で指定できます。ただし、 playerNobankNoplayerPrioの引数のうち、-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 初版