首页 > 编程语言 >C# + WPF 音频播放器 界面优雅,体验良好

C# + WPF 音频播放器 界面优雅,体验良好

时间:2024-09-26 19:45:05浏览次数:5  
标签:播放器 界面 C# 音频 支持 模式 WPF

阅读目录

前言

本文介绍一款使用 C# 与 WPF 开发的音频播放器,其界面简洁大方,操作体验流畅。该播放器支持多种音频格式(如 MP4、WMA、OGG、FLAC 等),并具备标记、实时歌词显示等功能。

另外,还支持换肤及多语言(中英文)切换。核心音频处理采用 FFmpeg 组件,获得了广泛认可,目前 GitHub 上已收获 1.8K 星标。

项目介绍

Dopamine 是一款简单好用的、功能强大的、完全免费且无广告的本地音乐播放器。它有绿色便携版(30MB)和可安装版(34MB),目前仅支持 Windows 平台。

它使用 C# 编写并由 CSCore 音频库提供支持。播放器使用了根据 LGPLv2.1 许可的 FFmpeg 代码。

项目页面

首次启动时,它会让我们选择主题颜色、显示语言、库文件(音乐文件所在的目录)。

基本配置好了,就可以看到软件界面

它的界面非常干净,如下图所示:

用户界面与动画效果

这款软件不仅界面美观,还拥有许多令人着迷的动画效果。例如,切换歌曲时软件左下角的动画以及音乐可视化效果等,都显得流畅而自然。

音频格式支持与封面模式

它支持播放 MP3、WMA、OGG、FLAC、M4A、AAC、WAV、APE 和 OPUS 等格式的音频文件。

点击右上角的【切换播放器】按钮,可以开启【封面模式】。

在这个模式下,仅显示歌曲封面和少量控制按钮。

在【封面模式下】,鼠标右键点击它的界面的任意位置,可以打开【简洁模式】和【迷你模式】:

任务栏模式

最小化主窗口后,点击任务栏上的图标可以进入【任务栏模式】

 歌词功能

它支持歌词滚动,既可以导入本地歌词文件,也支持从网易云、虾米音乐ChartLyrics、LoloLyrics 和 MetroLyrics 等平台自动获取歌词。

更多功能探索

本文仅展示了部分功能,实际上还有许多其他设置和功能等待你的发现。如果感兴趣,欢迎下载并亲自体验。

项目源码

可以下载 Dopamine 的对应源代码进行学习,以深入了解其设计原理和实现细节。

可以帮助我们提升编程技能,还能为我们提供一个参考案例。

项目结构具体如下:

项目地址

GitHub:https://github.com/digimezzo/dopamine-windows

下载地址:https://github.com/digimezzo/dopamine-windows/releases

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种习惯,欢迎大家留言学习!

标签:播放器,界面,C#,音频,支持,模式,WPF
From: https://www.cnblogs.com/sexintercourse/p/18434166

相关文章

  • codeforces round 971(div4)E(二分答案,禁用数学方法)
    解题历程:开始想的是用数学公式的方法,利用公式推出二次函数,再求出根,再用根求出答案,检查了一个小时,结果怎么改都有细微的偏差,最后发现答案先单调递减在单调递增,那么可以用二分答案的方法查找最小的答案,二分对细节的处理要求比较高,于是在二分中加入了一个限制,当二分的区间小于5时,就......
  • Docker 教程:在 Mac M2 上运行 PostgreSQL
    前提条件  -已安装[DockerDesktop] 创建Docker卷  首先,创建一个名为`pgdata`的Docker卷,以便用于PostgreSQL数据存储。  dockervolumecreatepgdata运行PostgreSQL容器  使用以下命令启动PostgreSQL容器:  dockerrun--namepostgres -ePOS......
  • CSP 模拟 33
    A商品对于一个数对\((x,y)[x<y]\),无论怎样选择区间,这个数对的贡献都是\(y-x\),那么考虑对于所有数对,把\(x\)和\(y\)分别放到一起,排好序。如果当前区间确定,在两个数组二分一下,前缀和就能处理出答案。显然区间越大越好,所以只考虑区间左端点,考虑只对于点对\((x,y)\)来说,\(l......
  • 交替方向乘子法(Alternating Direction Method of Multipliers,简称ADMM)
    ADMMADMM简介交替方向乘子法(AlternatingDirectionMethodofMultipliers)通常用于解决存在两个优化变量的只含等式约束的优化类问题,其一般形式为:min⁡......
  • CF1063E Lasers and Mirrors题解
    一道很好的手玩题,被薄纱了。首先判掉\(\foralli,p_i=i\)的情况(显然是\(n\))然后考虑按照\(p_i\)连边,先构造每一个环的方案。发现可以简单放置两面镜子使得\(i\)射到\(p_i\),而且只要从高到底构造,一定不会产生影响。但是每一个环的最后一个点很特殊,因为第1个点下面放置了让第1个......
  • [ABC234G] Divide a Sequence
    [ABC234G]DivideaSequence给定长度为\(N\)的序列\(A\),我们定义一种将\(A\)划分为若干段的方案的价值为每一段的最大值减去最小值的差的乘积,你需要求出所有划分方案的价值的总和,答案对\(998244353\)取模。$1\\leq\N\\leq\3\\times\10^5$$1\\leq\A_i\\leq......
  • CAD快手蔡工、BOM师傅……云PLM+CAD集成时代,被PLM挫败的CAD工程师
    在一个阳光和煦的周六下午,我习惯性地打开PLM,一条一条浏览着关于项目进展的站内信。在电力系统的某设计院摸爬滚打8年后,我已经习惯了这种日子:周末每天来公司转一圈,干半天活、在食堂打点菜,再回家陪妻儿。早几年的时候,妻子还吐槽我们没时间带孩子出去玩,这几年很多朋友都失业在家,她也就......
  • C#(.NetCore)接入AD域用户的实现
      很多公司电脑都是windows,而对用户的管理则很多采用AD域的形式来管理,本文简单的来介绍一下.NetCore中怎么接入AD域来实现登录等操作。  首先,我这里使用的是.net6,其它版本类似。  其次,这里假设你已经对AD域有了基本的了解,比如AD域所使用的LDAP、属性等,如果不了解先自行百......
  • git 清除二进制文件的 changes 状态
    问题:某个分支上修改了二进制文件,导致changes一直存在,切换到主分支也仍然存在,点击Discard也没用使用gitreset--hard还原到初始状态,也不行,不过输出结果会给出错误信息Encountered7file(s)thatshouldhavebeenpointers,butweren't:解决方法:根据这个线索......
  • JavaScript 值比较 严格相等和严格不相等
    严格相等和严格不相等相等在进行比较时候,会发生类型转换,因此像比较0和false、空字符串和false时,会判定两者相等。但是严格相等和严格不相等,在比较时候不会发生类型转换。例子:lets1=0==false;lets2=''==false;lets3=0===false;lets4=''===false;lets5=1==true;let......