Описание функций BASS.NET.dll - C#
Формулировка задачи:
киньте функции BASS.NET.dll кто что знает с кратким описанием. буду очень благодарен, ибо в интернете не нашел.
Решение задачи: «Описание функций BASS.NET.dll»
textual
Листинг программы
- public class BassPlayer
- {
- SYNCPROC syncProcEndStream;
- int handleSynchronizationEndStream;
- public BassPlayer()
- {
- syncProcEndStream = new SYNCPROC(SyncMethodEndStream);
- }
- /// <summary>Происходит, когда кончается воспроизведение потока (музыкального файла). При воспроизведении радио, не срабатывает</summary>
- public event EventHandler EndStream;
- public void Play()
- {
- if (PlayState != PlayState.Paused)
- {
- Bass.BASS_StreamFree(numberStream); //освобождаем поток.
- if (TagInfo != null)
- TagInfo.Clear();
- IMediaSource mediaSource = playList[CurrentSourceIndex];
- if (!mediaSource.Source.IsFile)
- {
- numberStream = Bass.BASS_StreamCreateURL(mediaSource.Source.OriginalString, 0, BASSFlag.BASS_STREAM_STATUS, null /*_downloadProc*/, IntPtr.Zero);
- if (numberStream != 0)
- {
- GetTagsFromURLStream();
- handleSynchronization = Bass.BASS_ChannelSetSync(numberStream, BASSSync.BASS_SYNC_META, 0, syncProcChangeTags, IntPtr.Zero);
- Bass.BASS_ChannelSetAttribute(numberStream, BASSAttribute.BASS_ATTRIB_VOL, _volume);
- Bass.BASS_ChannelPlay(numberStream, true); //играем полученный поток начав сначала
- OnPlayStateChange(PlayState.Playing);
- OnTagsReceived();
- }
- else
- {
- throw new Exception(Bass.BASS_ErrorGetCode().ToString());
- }
- }
- else if (mediaSource.Source.IsFile)
- {
- numberStream = Bass.BASS_StreamCreateFile(mediaSource.Source.OriginalString, 0, 0, BASSFlag.BASS_DEFAULT);
- if (numberStream != 0)
- {
- GetTagsFromFileStream();
- handleSynchronizationEndStream = Bass.BASS_ChannelSetSync(numberStream, BASSSync.BASS_SYNC_END, 0, syncProcEndStream, IntPtr.Zero);
- handleSynchronization = Bass.BASS_ChannelSetSync(numberStream, BASSSync.BASS_SYNC_META, 0, syncProcChangeTags, IntPtr.Zero);
- handleSyncPlaybackPosition = Bass.BASS_ChannelSetSync(numberStream, BASSSync.BASS_SYNC_POS, 0, syncPlaybackPosition, IntPtr.Zero);
- Bass.BASS_ChannelSetAttribute(numberStream, BASSAttribute.BASS_ATTRIB_VOL, _volume);
- Bass.BASS_ChannelPlay(numberStream, true); //играем полученный поток начав сначала
- OnPlayStateChange(PlayState.Playing);
- OnTagsReceived();
- }
- else
- throw new Exception(Bass.BASS_ErrorGetCode().ToString());
- }
- }
- else if (PlayState == PlayState.Paused)
- {
- Bass.BASS_ChannelPlay(numberStream, false); //Продолжение воспроизведения
- OnPlayStateChange(PlayState.Playing);
- }
- }
- public void Stop()
- {
- Bass.BASS_ChannelStop(numberStream);
- Bass.BASS_ChannelRemoveSync(numberStream, handleSynchronization);
- Bass.BASS_ChannelRemoveSync(numberStream, handleSynchronizationEndStream);
- Bass.BASS_ChannelRemoveSync(numberStream, handleSyncPlaybackPosition);
- OnPlayStateChange(PlayState.Stopped);
- }
- protected void SyncMethodEndStream(int handle, int channel, int data, IntPtr user)
- {
- OnEndStream(handle, channel, data, user);
- }
- protected void OnEndStream(int handle, int channel, int data, IntPtr user)
- {
- var handler = EndStream;
- if (handler != null)
- handler(this, new EventArgs());
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д