/** * <summary>AtomExプレーヤのデタッチ</summary> * \par 説明: * 出力データ解析を行うAtomExプレーヤをデタッチします。<br/> * デタッチを行うと、以降の解析処理は行われなくなります。 * \attention * アタッチ済みのプレーヤが音声を再生している状態で本関数を呼び出した場合、 * 強制的に再生を停止した上でデタッチが行われます。<br/> * <br/> * アタッチしたAtomExプレーヤが既に破棄されていた場合はアクセス違反が発生します。<br/> * 必ず本関数、またはCriAtomExPlayerOutputAnalyzer::Disposeを呼び出してから、 * AtomExプレーヤを破棄するようにしてください。<br/> * \sa CriAtomExPlayerOutputAnalyzer::AttachExPlayer, CriAtomExPlayerOutputAnalyzer::Dispose */ public void DetachExPlayer() { if (this.player == null || this.handle == IntPtr.Zero) { return; } CriAtomExPlayer.Status status = this.player.GetStatus(); if (status != CriAtomExPlayer.Status.Stop) { /* 音声再生中にデタッチは行えないため、強制的に停止 */ Debug.LogWarning("[CRIWARE] Warning: CriAtomExPlayer is forced to stop for detaching CriAtomExPlayerOutputAnalyzer."); this.player.StopWithoutReleaseTime(); } criAtomExPlayerOutputAnalyzer_DetachExPlayer(this.handle, this.player.nativeHandle); this.player = null; }
/** * <summary>AtomExプレーヤのアタッチ</summary> * <returns>アタッチが成功したかどうか(成功:true、失敗:false)</returns> * \par 説明: * 出力データ解析を行うAtomExプレーヤをアタッチします。<br/> * 複数のAtomExプレーヤをアタッチすることは出来ません。 * アタッチ中に別のAtomExプレーヤをアタッチした場合、アタッチ中のAtomExプレーヤはデタッチされます。<br/> * <br/> * CriAtomSourceをアタッチする場合、CriAtomSource::AttachToOutputAnalyzerを使用してください。 * \attention * アタッチは再生開始前に行う必要があります。再生開始後のアタッチは失敗します。<br/> * <br/> * 本関数でアタッチしたAtomExプレーヤをデタッチする前に破棄した場合、 * デタッチ時にアクセス違反が発生します。<br/> * 必ず先にデタッチを行ってからAtomExプレーヤを破棄してください。<br/> * \sa CriAtomExPlayerOutputAnalyzer::DetachExPlayer, CriAtomSource::AttachToOutputAnalyzer */ public bool AttachExPlayer(CriAtomExPlayer player) { if (player == null || this.handle == IntPtr.Zero) { return(false); } /* アタッチ済みのプレーヤがあればデタッチ */ this.DetachExPlayer(); /* プレーヤの状態をチェック */ CriAtomExPlayer.Status status = player.GetStatus(); if (status != CriAtomExPlayer.Status.Stop) { return(false); } criAtomExPlayerOutputAnalyzer_AttachExPlayer(this.handle, player.nativeHandle); this.player = player; return(true); }