Описание функций 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()); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д