Описание функций BASS.NET.dll - C#

Узнай цену своей работы

Формулировка задачи:

киньте функции BASS.NET.dll кто что знает с кратким описанием. буду очень благодарен, ибо в интернете не нашел.

Решение задачи: «Описание функций BASS.NET.dll»

textual
Листинг программы
  1.     public class BassPlayer
  2.     {
  3.         SYNCPROC syncProcEndStream;
  4.         int handleSynchronizationEndStream;
  5.  
  6.         public BassPlayer()
  7.         {
  8.             syncProcEndStream = new SYNCPROC(SyncMethodEndStream);
  9.         }
  10.  
  11.         /// <summary>Происходит, когда кончается воспроизведение потока (музыкального файла). При воспроизведении радио, не срабатывает</summary>
  12.         public event EventHandler EndStream;
  13.  
  14.         public void Play()
  15.         {
  16.                 if (PlayState != PlayState.Paused)
  17.                 {
  18.                     Bass.BASS_StreamFree(numberStream); //освобождаем поток.
  19.  
  20.                     if (TagInfo != null)
  21.                         TagInfo.Clear();
  22.  
  23.                     IMediaSource mediaSource = playList[CurrentSourceIndex];
  24.  
  25.                     if (!mediaSource.Source.IsFile)
  26.                     {
  27.                         numberStream = Bass.BASS_StreamCreateURL(mediaSource.Source.OriginalString, 0, BASSFlag.BASS_STREAM_STATUS, null /*_downloadProc*/, IntPtr.Zero);
  28.                         if (numberStream != 0)
  29.                         {
  30.                             GetTagsFromURLStream();
  31.                             handleSynchronization = Bass.BASS_ChannelSetSync(numberStream, BASSSync.BASS_SYNC_META, 0, syncProcChangeTags, IntPtr.Zero);
  32.                             Bass.BASS_ChannelSetAttribute(numberStream, BASSAttribute.BASS_ATTRIB_VOL, _volume);
  33.                             Bass.BASS_ChannelPlay(numberStream, true); //играем полученный поток начав сначала
  34.                             OnPlayStateChange(PlayState.Playing);
  35.                             OnTagsReceived();
  36.                         }
  37.                         else
  38.                         {
  39.                             throw new Exception(Bass.BASS_ErrorGetCode().ToString());
  40.                         }
  41.                     }
  42.                     else if (mediaSource.Source.IsFile)
  43.                     {
  44.                         numberStream = Bass.BASS_StreamCreateFile(mediaSource.Source.OriginalString, 0, 0, BASSFlag.BASS_DEFAULT);
  45.                         if (numberStream != 0)
  46.                         {
  47.                             GetTagsFromFileStream();
  48.                             handleSynchronizationEndStream = Bass.BASS_ChannelSetSync(numberStream, BASSSync.BASS_SYNC_END, 0, syncProcEndStream, IntPtr.Zero);
  49.                             handleSynchronization = Bass.BASS_ChannelSetSync(numberStream, BASSSync.BASS_SYNC_META, 0, syncProcChangeTags, IntPtr.Zero);
  50.                             handleSyncPlaybackPosition = Bass.BASS_ChannelSetSync(numberStream, BASSSync.BASS_SYNC_POS, 0, syncPlaybackPosition, IntPtr.Zero);
  51.                             Bass.BASS_ChannelSetAttribute(numberStream, BASSAttribute.BASS_ATTRIB_VOL, _volume);
  52.                             Bass.BASS_ChannelPlay(numberStream, true); //играем полученный поток начав сначала
  53.                             OnPlayStateChange(PlayState.Playing);
  54.                             OnTagsReceived();
  55.                         }
  56.                         else
  57.                             throw new Exception(Bass.BASS_ErrorGetCode().ToString());
  58.                     }
  59.                 }
  60.                 else if (PlayState == PlayState.Paused)
  61.                 {
  62.                     Bass.BASS_ChannelPlay(numberStream, false); //Продолжение воспроизведения
  63.                     OnPlayStateChange(PlayState.Playing);
  64.                 }
  65.         }
  66.  
  67.         public void Stop()
  68.         {
  69.             Bass.BASS_ChannelStop(numberStream);
  70.             Bass.BASS_ChannelRemoveSync(numberStream, handleSynchronization);
  71.             Bass.BASS_ChannelRemoveSync(numberStream, handleSynchronizationEndStream);
  72.             Bass.BASS_ChannelRemoveSync(numberStream, handleSyncPlaybackPosition);
  73.             OnPlayStateChange(PlayState.Stopped);
  74.         }
  75.  
  76.         protected void SyncMethodEndStream(int handle, int channel, int data, IntPtr user)
  77.         {
  78.             OnEndStream(handle, channel, data, user);
  79.         }
  80.  
  81.         protected void OnEndStream(int handle, int channel, int data, IntPtr user)
  82.         {
  83.             var handler = EndStream;
  84.             if (handler != null)
  85.                 handler(this, new EventArgs());
  86.         }
  87.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы