示例#1
0
 /// <summary>
 /// Thread for Creating the BASS Audio Engine objects.
 /// </summary>
 private static void InternalCreatePlayerAsync()
 {
   if (_Player == null)
   {
     _Player = new BassAudioEngine();
   }
 }
 public VisualizationWindow(BassAudioEngine bass)
 {
   Bass = bass;
   Init();
 }
    public VisualizationManager(BassAudioEngine bass, VisualizationWindow vizWindow)
    {
      Bass = bass;
      VisualizationBase.Bass = Bass;
      VizRenderWindow = vizWindow;

      if (bass != null)
      {
        Bass.PlaybackStateChanged += new BassAudioEngine.PlaybackStateChangedDelegate(OnPlaybackStateChanged);
      }

      SetVisualizationFPS(_TargetFPS);
    }
    private void OnPlaybackStateChanged(object sender, BassAudioEngine.PlayState oldState,
                                        BassAudioEngine.PlayState newState)
    {
      if (Viz == null)
      {
        return;
      }

      // Start the visualization render thread the first time an audio file starts playing.
      // Subsequent play state changes will be managed by the VisualizationWindow.
      if (!Viz.Initialized || newState == BassAudioEngine.PlayState.Playing)
      {
        VizRenderWindow.Run = true;
      }
    }
示例#5
0
    private void PlaybackStateChanged(object sender, BassAudioEngine.PlayState oldState,
                                      BassAudioEngine.PlayState newState)
    {
      Log.Debug("WinampViz: BassPlayer_PlaybackStateChanged from {0} to {1}", oldState.ToString(), newState.ToString());
      if (newState == BassAudioEngine.PlayState.Playing)
      {
        RenderStarted = false;
        trackTag = TagReader.TagReader.ReadTag(Bass.CurrentFile);
        if (trackTag != null)
        {
          _songTitle = String.Format("{0} - {1}", trackTag.Artist, trackTag.Title);
        }
        else
        {
          _songTitle = "   ";
        }

        _mediaInfo.SongTitle = _songTitle;
        _mediaInfo.SongFile = Bass.CurrentFile;

        BassVis.BASSVIS_SetPlayState(_visParam, BASSVIS_PLAYSTATE.Play);
      }
      else if (newState == BassAudioEngine.PlayState.Paused)
      {
        BassVis.BASSVIS_SetPlayState(_visParam, BASSVIS_PLAYSTATE.Pause);
      }
      else if (newState == BassAudioEngine.PlayState.Ended)
      {
        BassVis.BASSVIS_SetPlayState(_visParam, BASSVIS_PLAYSTATE.Stop);
        RenderStarted = false;
      }
    }