当前位置: 首页 > news >正文

基于NAudio实现简单的音乐播放器

  《测试.net开源音频库NAudio》介绍了使用NAudio实现音乐播放和录音的基本用法,本文基于NAudio的音乐播放功能实现简单的mp3音乐播放器程序,主要实现以下功能:
  1)导入文件夹中的mp3音乐文件,直接导入多个mp3音乐文件,形成播放清单;
  2)显示mp3音乐文件的基本信息,如名称、时长、歌手、唱片集等信息。本部分供基于taglib-sharp库实现,通过该库可以读取mp3文件,如下图所示,使用taglib-sharp库中的File获取文件信息,其中Properties属性中的Duration属性保存时长信息,Tag属性的Album保存唱片集信息,Tag属性AlbumArtists、FirstAlbumArtists或FirstPerformer保存有歌手信息,还有些其它信息,不过本文中没有使用。

在这里插入图片描述

在这里插入图片描述
  3)选择某一音乐文件时在窗口下方显示时长等信息。使用TrackBar控件显示播放进度,同时在其右侧显示播放时间信息;
  4)音乐播放、暂定、停止功能,直接使用上一篇文章中的代码,不过播放过程中动态更新TrackBar控件信息暂时没有在NAudio中找到相关事件,目前暂时使用定时器动态更新播放进度信息,点击播放按钮时启动定时器,每秒触发一次,然后从AudioFileReader的CurrentTime获取播放进度,将其转化为总秒数以设置TrackBar当前值。
  程序的运行效果如下图所示。主要代码放在了GitHub上,地址为https://github.com/guochao2299/TestNAudio。程序还存在不少细节功能,后续还会持续完善。

在这里插入图片描述

参考文献:
[1]https://github.com/naudio/NAudio
[2]https://stackoverflow.com/questions/6505870/how-to-get-the-properties-of-a-mp3-file-in-c-sharp

http://www.lryc.cn/news/146856.html

相关文章:

  • C++之“00000001“和“\x00\x00\x00\x01“用法区别(一百八十六)
  • Java“魂牵”京东店铺所有商品数据接口,京东店铺所有商品API接口,京东API接口申请指南
  • vuex详细用法
  • 微前端-monorepo-无界
  • 阿里云矢量图标透明背景转换/展示时变为黑色解决方法
  • Linux之Shell(二)
  • 以太网POE供电浪涌静电防护推荐TVS二极管
  • 如何在 JavaScript 中查看结构体数组?
  • 【SpringBoot学习笔记】02.静态资源与首页订制
  • kotlin 转 Java
  • 【Harmony】在Harmony上面可以使用的Android常用的开源库
  • 数学建模:灰色关联分析
  • nodepad++ 插件的安装
  • 学习分享:Ubuntu 下使用 Qt 打开串口报错 Permission denied
  • Javaweb入门
  • 后端开发基础概念
  • ELK原理和介绍
  • FBX SDK 开发环境配置 visual studio 2022
  • vue面试题_vue2和vue3的区别
  • Shiro整合SpringBoot,实战下的应用场景
  • C语言——全局变量和局部变量重名了会怎么样
  • linux下vi或vim操作Found a swap file by the name的原因及解决方法--九五小庞
  • 通过RD Client远程连接windows电脑踩坑点
  • 学习node之——如何在项目中使用MySQL、前后端的身份认证
  • AUTOSAR从入门到精通-【应用篇】参照AUTOSAR架构的柴油车后处理集成电控系统软件设计与研究(续)
  • Linux 内核动态打印调试(dev_info、 dev_dbg )
  • 深入浅出AXI协议(3)——握手过程
  • Ansible学习笔记5
  • LeetCode 面试题 02.06. 回文链表
  • linux环境没有curl或者telnet命令解决方法与区分linux环境类型