我收到了创建一个具有特定功能的音乐播放器的请求。
这个音乐播放器将以“随机”的方式播放音乐(第一次请求)从一个文件夹下载歌曲,另一个请求是每4小时改变一次音乐的“类型”,例如:
我的目的是为每个流派创建不同的歌曲文件夹,并给出各自的TitleName (浪漫主义、拉丁语、摇滚等)。当启动时,音乐播放器将自动下载歌曲的文件夹,按照时隙。
所以,我问你一些关于代码如何组织这些功能的建议,因为我不知道如何改变音乐类型,让音乐播放器进入情态随机。
发布于 2009-03-25 15:57:39
这里有个方法。
使用ID3或其他任何用于MP3文件的ID3标记读取器读取播放列表或文件夹中的MP3文件的所有ID3标记。探测播放列表,读取ID3标签,创建回购。设定定时器&从你已经读过的回购中选择一个体裁
发布于 2009-03-25 15:59:35
你说你从一个文件夹下载歌曲,这让我相信有一个服务器正在传送信息到媒体播放器。
我会把这个逻辑放到服务器端。只要用任何正规的媒体播放器就行。
然后,在服务器端生成一个提要,根据服务器上的时间(如果客户端提供一个偏移量,则由偏移量调整),为要下载的歌曲的URL提供提要。
然后,您的程序将读取提要并获取要播放的歌曲的urls,并根据服务器告诉您的内容将播放列表提供给媒体播放器(或下载歌曲并将其提供给媒体播放器)。
发布于 2009-03-25 16:00:09
在您的应用程序中,有一个概念看起来很有用,那就是宋源的概念。歌曲源本质上是一个可枚举的项,它提供了对歌曲的访问。这可能首先是一个接口。
这样,您就有了提供歌曲列表的代码的抽象概念。实际的播放器将访问ISongSource的任何实现来播放下一首歌曲,并播放它。玩的时候,恐怕我帮不了你。如果所有这些都失败了,您可以从您的歌曲源创建m3u文件(mp3播放列表),并通过Process.Start启动例如Winamp,传递新创建的播放列表。事实上,这听起来像一个整洁的版本1。
如果您想对所有内容进行编码,您可能需要一段代码从一个ID3文件中读取mp3标记(如果您正在播放mp3文件)。您应该将此视为独立的功能,并且可能已经有可用的功能。ID3标记不是很复杂,如果我记得清楚的话,在mp3文件的开头有定义的字节偏移。
在此基础上,您应该能够实现考虑ID3标记的歌曲源,以决定哪些歌曲应该是源的一部分。
最后是UI。这是一个独立的世界,特别是如果你有一个皮包骨的东西。但是有了一本像样的WPF书和一些概念的证明,你就应该在完成任务的路上了。
编码愉快!
https://stackoverflow.com/questions/681932
复制相似问题