在CentOs6.8 中配置安装madplayer

本文详细介绍在Linux环境下安装madplay播放器及其所需库的过程,包括zlib、libid3tag、libmad等,解决常见错误及播放问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 准备工作: 
  1. 创建madplay的编译目录 :  mkdir -p /madplay/target   (注意:这里的 -p  是同时创建父目录和子目录的意思)
  2. 进入target目录,用 rz 命令将在Windows下载好的四个源码包上传到该目录,4个源码包如下图:

   用  ls 命令看是否将4个包 传进来了(注意:如果是普通用户 要用 sudo rz ,才能上传成功,否则要切换到用户主目录 即输入cd 或者cd ~  ,然后返回到 /madplay/target 目录下解压源码包(当然,也可以在用户主目录下解压好用mv 命令移动到 /madplay/target下后再切换到 /madplay/target目录))

  • 安装压缩库zlib
  1. 解压 zlib-1.1.4.tar.gz源码包,命令为 tar -xzvf zlib-1.1.4.tar.gz 并cd 进入zlib-1.1.4源码包目录.
  2. 配置:命令为: ./configure --prefix=/madplay/target/  ,这时会生成一个 Makefile 文件,为下一步的编译做准备。
  3. 编译:命令为: make,从配置后生成的Makefile 文件中读取指令,接着进行编译
  4. 安装: 命令为:sudo make install  (注意 :普通用户 要用sudo ,否则会提示权限不够;如果是root 用户则不用 ),另外 初学者要意的是 make 和make install 都不可少,笔者之前不知道这两者的区别,只 敲了make ,后面出错了,弄了很久才知道什么问题。。。  做到这里一般不会出现太多问题,zlib 就安装完成啦~
  • 安装ID3标签编辑库 libid3tag
  1. 解压libid3tag-0.15.1b.tar.gz源码包,命令为 tar -xzvf libid3tag-0.15.1b.tar.gz 并cd 进入libid3tag-0.15.1b源码包目录。(libid3tag-0.15.1b库需要依赖1.1.4及以上版本的zlib库,所以安装的先后次序不能颠倒。)

配置libid3tag

命令为:CPPFLAGS=-I/madplay/target/includeLDFLAGS=-L/madplay/target/lib ./configure --enable-static --disable-shared--disable-debugging --prefix=/madplay/target/

编译:命令为: make

安装: 命令为:  make install
  • 安装MPEG音频解码库libmad(支持.mp1, .mp2, .mp3解码)

  1. 解压libmad-0.15.1b.tar.gz源码包,命令为 tar -xzvf libmad-0.15.1b.tar.gz  cd 进入libmad-0.15.1b源码包目录

  2. 配置:命令为:  CFLAGES=-I/madplay/target/include LDFLAGS=-L/madplay/target/lib ./configure --disable-debugging --enable-static --disable-shared --prefix=/madplay/target/

  3. 编译:命令为: make

这时,会发现出现错误:

cc1: error: unrecognized command line option"-fforce-mem"

原因:Compiling libmad with gcc 3.4 or higher will produce the following error: cc1: error: unrecognized command line option “-fforce-mem”. The build option “-fforce-mem” has been kicked out of gcc, so you need to alter the makefile (just vi Makefile after you have configured, hit “/” to search for the entry and delete it)  ,即gcc 3.4 或者更高版本,已经将“-fforce-mem”去除了

解决方法:

进去Makefile这个文件中:   vi Makefile

找到“-fforce-mem”:在命令模式下敲   /-fforce-mem     ,很快就可以找到-fforce-mem,进入编辑模式( 敲键盘上的 i ),将“-fforce-mem” 删除掉就好

保存并退出: 按下 Esc 键,然后 输入 ZZ 即可(或者wq!)

 4. 安装: 命令为: sudo make install

  • 安装播放器madplay
  1. 解压madplay-0.15.2b.tar.gz源码包,命令为 tar -xzvf madplay-0.15.2b.tar.gz  。。cd 进入madplay-0.15.2b源码包目录。

  2. 配置

    CPPFLAGS=-I/madplay/target/includeLDFLAGS=-L/madplay/target/lib ./configure --enable-static --disable-shared--disable-debugging --without-esd --prefix=/root/madplay/madplay-0.15.2b/target

我前面说过我一开始在每一步都没有 “make install”,所以在这里配置的时候出现错误:configure: error:mad.h was not found

原因:没有安装libmad

解决方法:cd 进入libmad-0.15.1b源码包目录,sudo make install 

     3. 编译make

     4. 安装sudo make install (这里 也可以不安装)

     5. 测试运行: 用 rz 命令将 windows 下 下载好的一首 .mp3歌曲上传至 Linux 中,如 BrightestStar.mp3

        运行   ./madplay BrightestStar.mp3

   会发现这时候出错啦:


原因:百度了一下,发现:

目前Linux下常用的声卡驱动程序主要有两种:OSS和ALSA。从Linux的内核版本为2.6 开始 ALSA 就成为Linux内核中默认的标准音频驱动程序集,而OSS则被标记为废弃(两种驱动的区别自己去查一下资料了哈~),但madplay 使用的是OSS 构建 ,所以要创建、安装相关的驱动设备。

解决方法: 分别输入命令:

sudo mknod /dev/dsp c 14 3 和 sudo chmod 666 /dev/dsp

mknod 用于创建一个设备文件,mknod 的参数格式为:【 mknod 设备名 b或c 主号 次号】c 代表以字符的方式传送数据,主号代表使用的是哪一个设备驱动程序,次号定义该设备在系统中的物理位置 具体的可以参看这篇文章: https://blog.youkuaiyun.com/manchestermi/article/details/50776212 ,该文章的作者写得很详细了 ,至于chmod 即改变该目录的权限 r=4,w=2,x=1,说明将权限改为可读可写不可执行)

这时候再在libmad-0.15.1b目录下运行  ./madplay BrightestStar.mp3 就可以播放啦~


然而,还有一个问题。。。那就是根本听不到声音,

原因:原来虚拟机的播放器那里声音被调到最小了

解决方法:在虚拟机中(不是SecureCRT 中哦,因为还要进行后续命令操作) 输入 startx ,打开CentOs 的图形化界面,在右上角有个扬声器,将音量调大


然后,在右下角“声卡”那里,右键,设置:

将连接那里改为“指定主机声卡(S)”


这时候再在libmad-0.15.1b目录下运行  ./madplay BrightestStar.mp3 就可以安静地听音乐啦~

  • 反思与总结:
遇到问题要尽可能自己去网上找答案,你遇到过的问题一般很多网友也都遇到了,但发现如果百度都找不出答案(比如说 出现没有mad.h 这个错。。。)每个方法试了一遍还是解决不了,这绝对不是运气问题,回过头看一下其他地方,是不是有哪些细节没有做到。

以上就是笔者在配置安装madplay的过程中遇到的所有问题,希望这个过程记录可以帮助一些小伙伴少走一些弯路吧,当然,如果有发现错误,还请指出哦~


参考资料:https://blog.youkuaiyun.com/manchestermi/article/details/50776212

https://blog.youkuaiyun.com/ycy_dy/article/details/53400473
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值