/** * <summary>RawPCM ボイスプールの作成</summary> * <param name="numVoices">ボイス数</param> * <param name="maxChannels">最大チャンネル数</param> * <param name="maxSamplingRate">最大サンプリングレート</param> * <param name="format">RawPCM フォーマット</param> * <param name="identifier">ボイスプール識別子</param> * <returns>RawPCM ボイスプール</returns> * 本関数を実行することで、RawPCM 再生が可能なボイスがプールされます。<br> * AtomEx プレーヤで RawPCM データ(もしくは RawPCM データを含むキュー)の再生を行うと、 * AtomEx プレーヤは作成された RawPCM ボイスプールからボイスを取得し、再生を行います。<br> * 再生終了後は、必ず、Dispose 関数でオブジェクトを破棄してください。<br> * 特定の CriAtomExPlayer に対して、作成したボイスプールからボイスを取得するように明示的に設定したい場合は、 * identifier としてデフォルトの 0 以外の値を指定して作成し、 CriAtomExPlayer::SetVoicePoolIdentifier 関数を * 呼び出してください。 * \attention * 現状、一度作成した RawPCM ボイスプールのフォーマットを後から変更することはできません。<br> * 再生するデータに合わせたフォーマットを指定して作成を行うようにしてください。<br> * また、 ::CriAtomExPlayer に対してチャンネル数やサンプリングレートを指定しても、 * ボイスプールに対して設定したフォーマットに基づいて再生が行われます。 * \sa CriAtomExPlayer::SetVoicePoolIdentifier */ public CriAtomExRawPcmVoicePool(int numVoices, int maxChannels, int maxSamplingRate, RawPcmFormat format, uint identifier = 0) { this._identifier = identifier; this._numVoices = numVoices; this._maxChannels = maxChannels; this._maxSamplingRate = maxSamplingRate; RawPcmVoicePoolConfig config = new RawPcmVoicePoolConfig(); config.identifier = identifier; config.numVoices = numVoices; config.playerConfig.maxChannels = maxChannels; config.playerConfig.maxSamplingRate = maxSamplingRate; config.playerConfig.format = format; config.playerConfig.soundRendererType = (int)CriAtomEx.SoundRendererType.Asr; config.playerConfig.decodeLatency = 0; this._handle = criAtomExVoicePool_AllocateRawPcmVoicePool(ref config, IntPtr.Zero, 0); if (this._handle == IntPtr.Zero) { throw new Exception("CriAtomExRawPcmVoicePool() failed."); } CriDisposableObjectManager.Register(this, CriDisposableObjectManager.ModuleType.Atom); }
private static IntPtr criAtomExVoicePool_AllocateRawPcmVoicePool(ref RawPcmVoicePoolConfig config, IntPtr work, int work_size) { return(new IntPtr(1)); }
private static extern IntPtr criAtomExVoicePool_AllocateRawPcmVoicePool(ref RawPcmVoicePoolConfig config, IntPtr work, int work_size);