/* プレビュ用:初期化関数 */ private void PreparePreview() { if (CriAtomPlugin.IsLibraryInitialized() == false) { CriWareInitializer.InitializeAtom(new CriAtomConfig()); } if (CriAtomPlugin.IsLibraryInitialized() == false) { return; } previewPlayer = new CriAtomExPlayer(); if (previewPlayer == null) { return; } if (atomComponent != null) { CriAtomEx.RegisterAcf(null, Path.Combine(CriWare.streamingAssetsPath, atomComponent.acfFile)); } else { Debug.LogWarning("[CRIWARE] CriAtom component not found in this scene"); return; } isPreviewReady = true; }
//----- method ----- public void Initialize(SoundParam defaultSoundParam) { if (initialized) { return; } this.defaultSoundParam = defaultSoundParam; player = new CriAtomExPlayer(); soundParams = new Dictionary <SoundType, SoundParam>(); managedSoundSheets = new Dictionary <string, SoundSheet>(); soundElements = new List <SoundElement>(); // デフォルトのサウンド設定を適用. SetSoundParam(); // サウンドイベントを受信. CriAtomExSequencer.SetEventCallback(SoundEventCallback, SoundEventSeparator.ToString()); // サウンドの状態更新. Observable.EveryEndOfFrame().Subscribe(_ => UpdateElement()); // 一定周期で未使用状態になったAcbの解放を行う. Observable.Interval(TimeSpan.FromSeconds(5f)).Subscribe(_ => ReleaseSoundSheet()); initialized = true; }
private void Initialize() { CriAtomEditor.InitializePluginForEditor(); if (CriAtomPlugin.IsLibraryInitialized() == false) { return; } player = new CriAtomExPlayer(); if (player == null) { return; } player.SetPanType(CriAtomEx.PanType.Pan3d); player.UpdateAll(); isPlayerReady = true; CriDisposableObjectManager.Register(this, CriDisposableObjectManager.ModuleType.Atom); if (finalizeSuppressed) { GC.ReRegisterForFinalize(this); } }
protected virtual void InternalFinalize() { this.player.Dispose(); this.player = null; this.source.Dispose(); this.source = null; CriAtomPlugin.FinalizeLibrary(); }
private void dispose() { CriDisposableObjectManager.Unregister(this); if (player != null) { player.Dispose(); player = null; } this.isPlayerReady = false; }
public PlayerSource(CriAtomEx3dListener listener) { this.player = new CriAtomExPlayer(); this.source3d = new CriAtomEx3dSource(); this.source3d.SetPosition(0, 0, 0); this.source3d.Update(); this.player.Set3dSource(this.source3d); this.player.Set3dListener(listener); this.player.UpdateAll(); }
/** * <summary>AtomExプレーヤのアタッチ</summary> * \par 説明: * 出力データ解析を行うAtomExプレーヤをアタッチします。<br/> * 複数のAtomExプレーヤをアタッチすることは出来ません。 * アタッチ中に別のAtomExプレーヤをアタッチした場合、アタッチ中のAtomExプレーヤはデタッチされます。<br/> * <br/> * CriAtomSourceをアタッチする場合、CriAtomSource::AttachToOutputAnalyzerを使用してください。 * \attention * アタッチは再生開始前に行う必要があります。再生開始後のアタッチは失敗します。<br/> * \sa CriAtomExPlayerOutputAnalyzer::DetachExPlayer, CriAtomSource::AttachToOutputAnalyzer */ public void AttachExPlayer(CriAtomExPlayer player) { if (player == null || this.handle == IntPtr.Zero) { return; } /* アタッチ済みのプレーヤがあればデタッチ */ this.DetachExPlayer(); criAtomExPlayerOutputAnalyzer_AttachExPlayer(this.handle, player.nativeHandle); this.player = player; }
private void OnDisable() { #if CRI_UNITY_EDITOR_PREVIEW if (previewAcb != null) { previewAcb.Dispose(); previewAcb = null; } if (previewPlayer != null) { previewPlayer.Dispose(); previewPlayer = null; } #endif }
public void Initialize(SoundParam defaultSoundParam) { if (initialized) { return; } this.defaultSoundParam = defaultSoundParam; player = new CriAtomExPlayer(); soundParams = new Dictionary <SoundType, SoundParam>(); managedSoundSheets = new Dictionary <string, SoundSheet>(); soundElements = new List <SoundElement>(); // デフォルトのサウンド設定を適用. SetSoundParam(); // サウンドイベントを受信. CriAtomExSequencer.EventCallback soundEventCallback = (ref CriAtomExSequencer.CriAtomExSequenceEventInfo info) => { if (onSoundEvent != null) { onSoundEvent.OnNext(info); } }; CriAtomExSequencer.OnCallback += soundEventCallback; // サウンドの状態更新. Observable.EveryEndOfFrame() .Subscribe(_ => UpdateElement()) .AddTo(Disposable);; // 一定周期で未使用状態になったAcbの解放を行う. Observable.Interval(TimeSpan.FromSeconds(5f)) .Subscribe(_ => ReleaseSoundSheet()) .AddTo(Disposable); initialized = true; }
/** * <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); }
private void Setup() { CriAtom.instance = this; CriAtomPlugin.InitializeLibrary(); if (!String.IsNullOrEmpty(this.acfFile)) { string acfPath = Path.Combine(CriWare.streamingAssetsPath, this.acfFile); CriAtomEx.RegisterAcf(null, acfPath); } if (!String.IsNullOrEmpty(dspBusSetting)) { AttachDspBusSetting(dspBusSetting); } foreach (var cueSheet in this.cueSheets) { cueSheet.acb = this.LoadAcbFile(cueSheet.acbFile, cueSheet.awbFile); } if (this.dontDestroyOnLoad) { GameObject.DontDestroyOnLoad(this.gameObject); } this.player = new CriAtomExPlayer(); }
protected virtual void InternalInitialize() { CriAtomPlugin.InitializeLibrary(); this.player = new CriAtomExPlayer(); this.source = new CriAtomEx3dSource(); }
/** * <summary>AtomExプレーヤの削除</summary> * <param name='player'>AtomExプレーヤのネイティブハンドル</param> * <remarks> * <para header='説明'>サウンドオブジェクトからAtomExプレーヤを削除します。<br/> * 削除したAtomExプレーヤはサウンドオブジェクトとの関連付けが切られ、 サウンドオブジェクト * による影響を受けなくなります。<br/></para> * <para header='注意'>本関数の呼び出しは、削除しようとしているAtomExプレーヤで音声を再生していない状態で行ってください。<br/> * 再生中のAtomExプレーヤが指定された場合、 削除時に再生停止が行われます。<br/></para> * </remarks> * <seealso cref='CriAtomExSoundObject::AddPlayer'/> * <seealso cref='CriAtomExSoundObject::DeleteAllPlayers'/> * <seealso cref='CriAtomExPlayer::nativeHandle'/> */ public void DeletePlayer(CriAtomExPlayer player) { criAtomExSoundObject_DeletePlayer(this.handle, player.nativeHandle); }
override protected void InternalInitialize() { CriAtomPlugin.InitializeLibrary(); player = new CriAtomExPlayer(_enableAudioSyncedTimer); source = new CriAtomEx3dSource(); }