void StartPlaying() { int fadeInLength = 1024; int fadeOutLength = 22050; //longer fade out if (_didFade == false) // We haven't played the recording yet, let's fade it for popless playback { _leftData.FadeIn(fadeInLength); _rightData.FadeIn(fadeInLength); _leftData.FadeOut(fadeOutLength); _rightData.FadeOut(fadeOutLength); _didFade = true; } // We are not going to route playback through tracks. In order for the player to // directly play data, it needs an AGATPanInfo object ( GATFixedPanInfo or GATDynamicPanInfo ). // As we won't dynamically pan, we'll use the fixed version. // Note that it would be better to cache these objects so as not to have to re-create them // every time we play. GATFixedPanInfo leftPan = new GATFixedPanInfo(); GATFixedPanInfo rightPan = new GATFixedPanInfo(); leftPan.SetStereoPan(0f); // pan on fixed pan objects can only be set once! rightPan.SetStereoPan(1f); GATManager.DefaultPlayer.PlayData(_leftData, leftPan); // we pass the pan objects to the player. GATManager.DefaultPlayer.PlayData(_rightData, rightPan); //Final note: pan objects can handle playback of multiple simultaneous samples. }
void StartPlaying() { int fadeInLength = 1024; int fadeOutLength = 22050; //longer fade out int i; if( _didFade == false ) // We haven't played the recording yet, let's fade it for popless playback { for( i = 0; i < streamToCache.Caches.Length; i++ ) { streamToCache.Caches[ i ].FadeIn( fadeInLength ); streamToCache.Caches[ i ].FadeOut( fadeOutLength ); } _didFade = true; } // We are not going to route playback through tracks. In order for the player to // directly play data, it needs an AGATPanInfo object ( GATFixedPanInfo or GATDynamicPanInfo ). // As we won't dynamically pan, we'll use the fixed version. // Note that it would be better to cache these objects so as not to have to re-create them // every time we play. GATFixedPanInfo leftPan = new GATFixedPanInfo(); GATFixedPanInfo rightPan = new GATFixedPanInfo(); leftPan.SetStereoPan( 0f ); // pan on fixed pan objects can only be set once! rightPan.SetStereoPan( 1f ); GATManager.DefaultPlayer.PlayData( streamToCache.Caches[ 0 ], leftPan ); // we pass the pan objects to the player. GATManager.DefaultPlayer.PlayData( streamToCache.Caches[ 1 ], rightPan ); //Final note: pan objects can handle playback of multiple simultaneous samples. }