c#实现XM文件播放/转码
这个脑洞也是很久以前就有的了。今天总算把坑填了。
XM文件就是各种注册机啊修改器啊里面的音乐,出奇的魔性啊,dididi~biubiubiu~很好听嘛………
工具可以实现XM到MP3的格式转换,顺便加了播放功能。
基于bassmod的类库实现,这个类库好像很厉害,暴风之类的都使用的这个库。
这个帮助文档可是看晕了我……….
实现方法是先用里面的Bass.BASS_MusicLoad()这个方法创建一个流,然后操作,照着说明打就可以了;
枚举参数:
- 播放的话直接 BASSFlag.BASS_DEFAULT
- 转码要先解码 BASSFlag.BASS_MUSIC_DECODE
- 要获取XM文件的一些信息,比如歌曲长度,要先扫描 BASSFlag.BASS_MUSIC_PRESCAN
转码不要忘了加lame.exe 虽然文档里有但,我实力小聋瞎
如下代码可以实现播放功能~
private void PlayMusic(string Path_playmusic,int ct)
{
Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero);
//if (Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero))
//{
int Stream_playmusic = Bass.BASS_MusicLoad(Path_playmusic, 0L, 0, BASSFlag.BASS_DEFAULT, 0);
if (ct == 1)
{
try
{
dataGridView1.Rows[index_play].Cells[2].Value = "停止";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Bass.BASS_Free();
Bass.BASS_StreamFree(Stream_playmusic);
return;
}
if (Stream_playmusic!=0)
{
Bass.BASS_ChannelPlay(Stream_playmusic,false);
}
else
{
MessageBox.Show(Bass.BASS_ErrorGetCode().ToString());
}
//}
}
然后是源码和一些好听的音乐
另外我网易云歌单收录了一些
http://music.163.com/#/m/playlist?id=35507933&userid=30457340
发表评论