所以,我正在用 C# 开发 mp3 播放器,但我遇到了一个问题。
我想从列表中的目录中获取所有文件,因此您可以选择
您要播放的歌曲。
这是获取文件的代码↓
string[] music = Directory.GetFiles(dir, "*.mp3");
然后就可以玩了↓
WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
wplayer.URL = String.Join(" ", music);
wplayer.controls.play();
如果文件夹中只有一个文件,这是有效的,但一旦其中有多个文件,它就不起作用......
所以我认为解决方案是将所有文件设置在一个列表中,使其从 0 开始并不断结束,直到不再有歌曲为止。然后一切又重新开始。
但是,我该怎么做呢?
提前致谢!
您已经通过以下方式获得了您想要的所有文件:
string[] music = Directory.GetFiles(dir, "*.mp3");
GetFiles
返回文件夹中的所有文件,搜索模式为*mp3
,它已经返回所有 MP3 文件。
问题是,你不需要做string.Join
的文件,但一个接一个地播放它们:
foreach (var musicurl in music){
WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
wplayer.URL = musicurl; //get one by one
wplayer.controls.play();
//Logic to control how long a music is to be played
}
当前逻辑仅在文件夹中只有一个 MP3 文件时才起作用的原因是string.Join
你使用的。
为了说明这一点,这就是string.Join
为你做的music
当您有多个文件时。假设你的music
由组成:
C:\music1.mp3
C:\music2.mp3
当你这样做时string.Join
,您的 URL 变为:
C:\music1.mp3 C:\music2.mp3
因此您无法播放音乐。但是当你只有一个文件时,字符串连接不会影响:
C:\music1.mp3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)