トラブルシューティング
CRI ADX2 LE for Cocos2d-x 利用時に発生しやすいエラーやトラブルの対処方法について説明します。

大量の"E20XXXXXXXX:Invalid parameter."エラーコールバックが発生する

【質問】

アプリケーションを実行すると、エラーコールバックで "E20XXXXXXXX:Invalid parameter." というメッセージが大量に表示されます。

【回答】

"Invalid parameter"エラーコールバックは、ライブラリAPIに対して、不正な引数を指定した場合に発生するエラーです。
例えば、プレーヤAPIに対しプレーヤハンドルにNULLを指定した場合などが該当します。
本エラーが大量に発生した場合は、本エラーが発生する直前にプレーヤハンドルやボイスプールの作成に失敗していないかどうかをご確認ください。

音声が再生されない ("E2009062502:have to create D-BAS for streaming player.")

【質問】

音声を再生しようとすると、エラーコールバックで "E2009062502:have to create D-BAS for streaming player." というメッセージが表示され、音声が再生されません。

【回答】

D-BAS を作成せずにストリーム再生を行った場合に発生するエラーです。
ストリーム再生を行う場合は必ず再生開始前に criAtomExDbas_Create() でD-BASを作成してください。

ページTOP


音声が再生されない ("E09022032B:Increase max_streams of CriAtomDbasConfig.")

【質問】

音声を再生しようとすると、エラーコールバックで "E09022032B:Increase max_streams of CriAtomDbasConfig." というメッセージが表示され、音声が再生されません。

【回答】

D-BAS で設定している最大ストリーム本数を超えてストリーム再生を行った場合に発生するエラーです。
D-BASハンドルを引数なしで作成した場合のデフォルトの最大ストリーム本数は8本までです。それ以上複数同時にストリーム再生を行う場合は CriAtomDbasConfig 構造体のmax_streamsを増やしてD-BASハンドルを作成してください。

ページTOP


音声が再生されない ("W2010072212:No voice pool an play specified format.")

【質問】

音声を再生しようとすると、エラーコールバックで "W2010072212:No voice pool an play specified format." というメッセージが表示され、音声が再生されません。

【回答】

再生しようとした音声データのコーデックに対応するボイスプールが作成されていないというエラーです。
原因としては次の可能性があります。
  1. ボイスプールを作成していない。
  2. データ側でコーデックに HCA-MX を使用しているが、HCA-MX 用のボイスプールを作成していない。
criAtomExVoicePool_AllocateStandardVoicePool() で作成する標準ボイスプールで再生できるのはADXコーデックとHCAコーデックだけです。
HCA-MXを使う場合は、criAtomExVoicePool_AllocateHcaMxVoicePool() でHCA-MX用のボイスプールを作成する必要があります。

ページTOP


音声が再生されない ("W2010072215:No voice pool has streamer.")

【質問】

音声を再生しようとすると、エラーコールバックで "W2010072215:No voice pool has streamer. (Enable streaming_flag of the player pool config.)" というメッセージが表示され、音声が再生されません。

【回答】

ストリーム再生用のボイスプールを作成せずにストリーム再生用のキューを再生しようとした際に発生するエラーです。
criAtomExVoicePool_AllocateStandardVoicePool() などのボイスプール作成時の引数に指定するボイスプール作成コンフィグ構造体のストリーミングフラグを有効にしてください。

ページTOP


音声再生時に "W2010110801:Specified frequency ratio exceeds the player's capability." が発生する

【質問】

音声を再生すると、エラーコールバックで "W2010110801:Specified frequency ratio exceeds the player's capability.(Increase max_sampling_rate of AtomPlayer or VoicePool up to %dHz.)" というメッセージが表示されます。

【回答】

再生しようとしている音声のサンプリングレートが高く、再生可能なボイスプールが存在しない場合に発生します。
原因としては次の可能性があります。
  1. ツール側で再生ピッチを高く設定している。
  2. アプリ側でSetPitch関数を使い、再生ピッチを上げている。
  3. AISACを使ってピッチ変更を行っている。
  4. 3Dポジショニング機能のドップラー効果を利用している。(※1)
※1 3Dポジショニング機能では、リスナーが音源に近づく速度が大きいと、ドップラー効果により再生ピッチが上がります。
ボイスプール作成時にサンプリングレートを高く設定してください。
具体的には、48kHzの音源のピッチを2倍に上げて再生する可能性がある場合、 ボイスプールのサンプリングレートを96kHzと設定します。

ページTOP


ボイスプールの作成に失敗してしまう

【質問】

ボイスプール作成に失敗し、エラーコールバックで"E2008070931:Can not allocate loader handle. (Increase num_loaders of CriFsConfig.)"というメッセージが表示されます。

【回答】

ボイスプール作成時、ストリーム再生用のボイス数がローダ(ファイル読み込みハンドル)数の上限を超えた場合に発生します。
ライブラリ初期化時に CriFsConfigTag 構造体のnum_loadersメンバの数をストリーム再生用の総ボイス数よりも多くなるように設定してください。
注意
ローダハンドルは、ストリーム再生の他に、 criAtomExAcb_LoadAcbFile などの関数内部でファイルの読み込みを行うために一時的にローダを作成するため、総ボイス数よりも若干多く指定してください。

ページTOP


効果音が多いとBGM/環境音が消えてしまう

【質問】

効果音がたくさん鳴ると、再生が続いていたはずのBGM/環境音が消えてしまいます。

【回答】

再生サウンド数がボイスプールの上限に到達してしまい、後着優先判定により先に鳴っていた音が止まった可能性があります。
CRI Atom Craft でBGMや環境音のボイスプライオリティを他の効果音よりも高い値に設定してください。
ボイスプライオリティ設定は、CRI Atom Craftでキュー内のウェーブフォームを選択し、[FX/AISAC]ペインの[FX2]タブで設定できます。
サンプル「基本再生」のデータ解説 サウンド優先度設定 も参照してください。
この他にもキューリミットやボイスリミットが原因で再生が止まった可能性もありますので、そちらもご確認ください。


ページTOP




CRI Middleware logo Copyright (c) 2012-2018 CRI Middleware Co., Ltd. CRI ADX2 LE マニュアル (for Cocos2d-x) SDKVer.2.10版