繁体   English   中英

WPF和MusicPlayer

[英]WPF and MusicPlayer

我收到了创建具有特定功能的音乐播放器的请求。

此音乐播放器将播放“随机”模式的音乐(第一个请求),从文件夹下载歌曲,另一个请求是每4小时更改音乐的“流派”,例如:

  • 从8am到12am:播放“浪漫”歌曲;
  • 从12am到4pm:播放“拉丁”歌曲;
  • 从4pm到8pm:播放“ Rock”歌曲;
  • 从晚上8点到午夜:播放“ Dance”音乐;

我的目的是为每个流派创建不同的歌曲文件夹,并指定各自的TitleName(浪漫,拉丁,摇滚等),并且音乐播放器在启动时会在相应的时间段后自动下载歌曲的文件夹。

因此,我想向您咨询一些有关代码如何组织这些功能的建议,因为我不知道如何在数小时内改变流派音乐并将音乐播放器置于随机状态。

这是一种方法。

使用C#ID3库或用于MP3文件的任何其他ID3标签阅读器,读取播放列表或文件夹中排队的MP3文件的所有ID3标签。 探查播放列表,读取ID3标签,创建存储库。 设置计时器并从您已阅读的回购中选择一种类型

您说您正在从文件夹下载歌曲,这使我相信有一个服务器正在将信息传送到媒体播放器。

我将逻辑放在服务器端。 只需使用任何常规的媒体播放器即可。

然后,在服务器端,生成某种类型的提要,该提要根据服务器上一天中的时间来提要下载的歌曲的URL(如果客户端提供一个,则通过偏移量进行调整)。

然后,您的程序将读取提要,并获取要播放的歌曲的URL,然后根据服务器告诉您的内容,将播放列表提供给媒体播放器(或下载歌曲并将其提供给媒体播放器)。

在您的应用中显示有用的一种概念是Song来源的概念。 歌曲来源从本质上讲是可枚举的项目,可提供对歌曲的访问。 首先可以是一个接口。

这样,您就可以理解一段提供歌曲列表的代码的抽象概念。 实际的播放器将访问ISongSource的任何实现,以播放下一首歌曲并进行播放。 发挥作用,恐怕我在这里不能为您提供帮助。 如果所有其他方法都失败,则可以从歌曲源创建m3u文件(mp3播放列表),然后通过Process.Start启动Winamp,例如传递新创建的播放列表。 实际上,这听起来像是一个简洁的版本1。

如果要编写所有代码,则可能需要一段代码才能从mp3文件中读取ID3标签(如果正在播放mp3文件)。 您应该将其视为独立的功能,并且可能已经有可用的功能。 ID3标记不是很复杂,如果我记得很好,在mp3文件的开头有定义的字节偏移。

基于此,您应该能够实现考虑了ID3标签的歌曲源,以便确定哪些歌曲应成为该源的一部分。

最后是UI。 那就是整个世界本身,特别是如果您有皮肤的东西。 但是,只要拥有一本不错的WPF书和一些概念证明,您就应该可以完成工作。

编码愉快!

它必须是一个全新的媒体播放器吗? 根据您的要求,您可以考虑包装Windows Media Player来执行此操作。 这是一个很好的起点:

(Windows Media Player)Visual Basic .NET和C#的对象模型参考

我已经使用Windows Media Player SDK来执行类似的操作。 它不是最简单的API,但只是一个DLL,向它发送命令以使WMP可以做些事情相对容易。 这是各种SDK版本的链接(其中包括您需要的wmppia.dll):

Windows Media下载

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM