示例#1
0
        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.
        }
示例#2
0
        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.
        }