c# – 如何使用Windows Media Player播放列表中的所有歌曲?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何使用Windows Media Player播放列表中的所有歌曲?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1679字,纯文字阅读大概需要3分钟。
内容图文
所以我有一个名为S?ra?asList的列表类,它有一个名为vardas的字符串项,其中包含一首歌的路径名,我在这个列表中有几首歌,还有带有Windows Windows Media播放器的GUI,但是当我写道:
private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)
{
foreach (S?ra?asList d in atrinktas)
{
axWindowsMediaPlayer1.URL = d.getVardas();
}
}
它只播放最后一首歌,但不会转到另一首歌,我该怎么办?
我希望这个播放器一个接一个地播放所有歌曲.
解决方法:
基本上,你正在做的是迭代你的所有歌曲,并将每个歌曲加载到播放器中.当然,你的播放器只能处理其中一个,所以你的收藏中的最后一个有效地播放.
你应该做的是加载你的第一首歌,并在每个媒体的结尾,你必须加载n 1首歌曲.
private System.Timers.Timer Timer; // Used to introduce a delay after the MediaEnded event is raised, otherwise player won't chain up the songs
private void ScheduleSongs() {
var count = 0;
var firstSong = atrinktas.FirstOrDefault(); // using Linq
if(firstSong == null) return;
axWindowsMediaPlayer1.URL = firstSong.getVardas();
// PlayStateChange event let you listen your player's state.
// https://msdn.microsoft.com/fr-fr/library/windows/desktop/dd562460(v=vs.85).aspx
axWindowsMediaPlayer1.PlayStateChange += delegate(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) {
if(e.newState == 8 && count < atrinktas.Count()) {
count++;
var nextSong = atrinktas[count];
axWindowsMediaPlayer1.URL = nextSong.getVardas();
Timer = new System.Timers.Timer() { Interval = 100 };
Timer.Elapsed += TimerElapsed; // Execute TimerElapsed once 100ms is elapsed
}
};
}
private void TimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Timer.Stop();
Timer.Elapsed -= TimerElapsed;
Timer = null;
axWindowsMediaPlayer1.Ctlcontrols.play(); // Play the next song
}
内容总结
以上是互联网集市为您收集整理的c# – 如何使用Windows Media Player播放列表中的所有歌曲?全部内容,希望文章能够帮你解决c# – 如何使用Windows Media Player播放列表中的所有歌曲?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。