MPD播放器为C/S架构,MPD为Server,它的Client 有很多,MPC为其典型稳定的Client。

1.源码下载

在github 上有其源码,下载地址:https://github.com/MusicPlayerDaemon/

如下截图包括 MPD,libmpdclient和mpc 三部分,如下截图:

2. 编译

2.1安装所需要的依赖包

1)boost

boost 是C++ 库,mpd 和mpc都是C++,在实现过程会用的boost库,所有需要在ubuntu上先安装boost 。

boost下载地址:http://www.boost.org/users/history/version_1_66_0.html
#tar xvzf boost_1_50_0.tar.gz
#cd boost_1_50_0
#sh ./bootstrap.sh
#./b2

编译完后会有如下log输出:

The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
    /home/nicole/work/mpd/boost_1_66_0
The following directory should be added to linker library paths:
    /home/nicole/work/mpd/boost_1_66_0/stage/lib

2)meson、Ninja

编译libmpdclient 需要meson、Ninja

meson下载、编译、 安装:
源码下载:https://github.com/mesonbuild/meson
python3 setup.py build
sudo python3 setup.py install

安装Ninja:sudo apt-get install ninja

3)FFmpeg 安装

mpd 是基于FFmpeg 实现的,所有必须在编译mpd 前安装FFmpeg库:
下载地址:https://github.com/FFmpeg/FFmpeg
./configure
make
sudo make install

2.2 编译mpd

1)tar -xf mpd-0.20.18.tar.xz

2)cd mpd-0.20.18

3) ./configure --disable-jack --with-boost=XXX --enable-ffmpeg

--with-boost=指定boost库所在的路径如:/home/nicole/work/mpd/boost_1_66_0

4)make

5)sudo make install

编译成功后,会在src/路径下生产mpd 可执行程序。

2.3   编译libmpdclient

进入libmpdclient 目录,创建编译输出文件夹(mkdir output)

meson . output
ninja -C output

sudo ninja -C output install

可参照:https://github.com/MusicPlayerDaemon/libmpdclient

2.4 编译mpc

方法同libmpdclient:

进入mpc目录,创建编译输出文件夹(mkdir output)

meson . output
ninja -C output

sudo ninja -C output install

可参照:https://github.com/MusicPlayerDaemon/mpc

3. 运行mpd 和mpc

准备好mpd.conf配置文件

在一个终端执行:sudo mpd --stdout --no-daemon --verbose /etc/mpd.conf

打开另一个终端执行mpc,如查询mpd的版本信息:mpc version

mpc 更多命令和使用方法,可执行:mpc help 查看。

4.播放测试

4.1 播放本地音乐

把音乐拷贝到mpd.conf中music_directory所配置的目录下,如我的配置是:

在media目录下已经拷贝了以下几个音频文件

启动mpd 后,通过mpc进行添加播放列表和播放音频文件:

4.2 播放url 资源

gstreamer 上有大量各种格式的音频文件可用于测试:https://gstreamer.freedesktop.org/media/

测试方法同样是先确保mpd 已经起来,然后使用mpc add url

mpc add https://gstreamer.freedesktop.org/media/small/audio-short.ogg
mpc play 2

5. 运行时遇到的问题

问题1:mpc: error while loading shared libraries: libmpdclient.so.2: cannot open shared object file: No such file or directory
解决:sudo ln -sb /usr/local/lib/x86_64-linux-gnu/libmpdclient.so.2.14 /usr/lib/libmpdclient.so.2

问题2:mpc 播放MP3时提示“mpd: Failed to read mixer for 'My ALSA Device': no such mixer control: PCM”,如下log:
alsa_output: opened default type=IOPLUG
alsa_output: buffer: size=48..524288 time=1088..11888617
alsa_output: period: size=16..174763 time=362..3962880
alsa_output: default period_time = buffer_time/4 = 500000/4 = 125000
alsa_output: format=S24_LE (Signed 24 bit Little Endian)
alsa_output: buffer_size=22050 period_size=5512
output: opened plugin=alsa name="hw:0,0" audio_format=44100:24:2
exception: Failed to open mixer for 'hw:0,0': no such mixer control: PCM
player: played "test.mp3"
playlist: stop
output: closed plugin=alsa name="hw:0,0"
解决:修改mpd.conf,
audio_output {
        type            "alsa"
#        name            "plug:dmix"
        name            "My ALSA Device"
#        device          "plughw:0,0"
 #      format          "44100:16:2"    # optional
#       mixer_type       "software"
#      mixer_device    "default"       # optional
#      mixer_control   "PCM"           # optional
#     mixer_index     "0"             # optional
}
修改为:
audio_output {
        type            "alsa"
#        name            "plug:dmix"
        name            "My ALSA Device"
        device          "plughw:0,0"
       format          "44100:16:2"    # optional
       mixer_type       "software"
#      mixer_device    "default"       # optional
#      mixer_control   "PCM"           # optional
#     mixer_index     "0"             # optional
}

ubuntu16.04(虚拟机) 上MPD(Music Player Daemon)+MPC运行环境搭建相关推荐

  1. debian安装sqlserver_在ubuntu16.04(虚拟机)上安装SQLSERVER

    遇到的问题及解决方案 Ubuntu 16.04下载地址: 客户机操作系统已将 CD-ROM 门锁定,并且可能正在使用 CD-ROM,这可能会导致客户机无法识别介质的更改.如果可能,请在断开连接之前从客 ...

  2. Ubuntu16.04下使用VLC media player播放器实现倍速播放

    Ubuntu16.04下使用VLC media player播放器实现倍速播放 打开软件 开启倍速功能 打开软件 视频文件右键"属性"-"打开方式"-" ...

  3. 完美解决Ubuntu16.04虚拟机窗口自适应问题

    完美解决Ubuntu16.04虚拟机窗口自适应问题 2018年06月15日 12:15:06 moon月神 阅读数:554 相信很多人在装虚拟机的时候,遇到了窗口过小不能自适应的问题.我在网上查了好多 ...

  4. 解决Ubuntu16.04虚拟机窗口全屏问题

    相信很多人在装虚拟机的时候,遇到了窗口过小不能自适应的问题.我也是查了好多资料,都说安装Vmware Tools即可解决,还有说修改分辨率也可以.两种方法亲测无效. Vmware Tools工具官方已 ...

  5. linux系统安装佳能打印机驱动,在ubuntu16.04 64-bit上安装佳能打印机驱动Linux_UFRII_PrinterDriver_V320_us_EN...

    在ubuntu16.04 64-bit上安装佳能打印机驱动Linux_UFRII_PrinterDriver_V320_us_EN 发布时间:2018-04-06 21:46, 浏览次数:631 , ...

  6. 完美解决Ubuntu16.04虚拟机窗口全屏问题

    相信很多人在装虚拟机的时候,遇到了窗口过小不能自适应的问题.我也是查了好多资料,都说安装Vmware Tools即可解决,还有说修改分辨率也可以.两种方法亲测无效. Vmware Tools工具官方已 ...

  7. Ubuntu16.04虚拟机配置模拟路由器

    Ubuntu16.04虚拟机配置模拟路由器 简介 环境搭建 设置IP地址 PC2设置路由 测试 简介 本文利用VMware中三台Ubuntu16.04虚拟机模拟实现路由转发功能,将其中一台虚拟机作为路 ...

  8. Ubuntu16.04(GTX1660ti)cuda10.0和cudnn7.6环境配置 (环境乃一生之敌!!!)

    Ubuntu16.04(GTX1660ti)cuda10.0和cudnn7.6环境配置 (环境乃一生之敌!!!) 第一项:安装显卡驱动 1.下载显卡驱动,到https://www.nvidia.com ...

  9. Hadoop入门(上):大数据特点、大数据前景、大数据组织结构、Hadoop组成、Hadoop版本介绍、Hadoop运行环境搭建、CentOS6安装JDK、安装Hadoop、Hadoop目录结构

    资料来源于尚硅谷 本篇文章目录 第1章·大数据概论 1.1.大数据概念. 1.2.大数据特点(4V) 1.3.大数据应用场景 1.4.大数据发展前景 1.5·大数据部门业务流程分析. 1.6·大数据部 ...

最新文章

  1. Go基础编程:作用域
  2. 未来15年,人工智能将带给城市8种改变
  3. Mac VirtualBox 命令行Centos 挂载Mac系统中的文件夹
  4. TensorFlow迁移学习的识别花试验
  5. 【Java报错】Greenplum数据库报错 Value can not be converted to requested type 问题解决(踩坑分享)
  6. Arria10_emif
  7. 如何把nodejs应用和SAP云平台上的Redis实例做绑定
  8. python网络编程-一些常用有用的函数
  9. win7桌面计算机没了,win7系统桌面的计算机图标没了的解决方法
  10. JSON字符串和对象之间的转换
  11. mysql 声明时间变量_MySQL如何声明一个datetime变量?
  12. jQuery 之 [ DOM操作 ]
  13. 明年,移动应用开发将出现这八大趋势
  14. C++ vector中begin()、end()、front()、back()的用法
  15. 鸽主姓名查询成绩_获奖鸽主姓名,名次及足环号码
  16. 汽车ABS控制器设计及车身稳定算法研究笔记(二)——ABS控制器硬件设计及调试
  17. LeetCode 316. Remove Duplicate Letters
  18. 电脑开机后进不了桌面怎么办
  19. Debian学习笔记
  20. 技术更高,设计更远:华为全屋智能设计大赛的审美之跃

热门文章

  1. Java腾讯企业邮箱发送邮件
  2. 新研究发现Masimo ORi™(氧储备指数)可用于早期检出单肺通气期间的血氧降低
  3. 测绘专业计算机二级,测绘本科毕业,几年具有考二级注册结构师资格?
  4. 基于T5CPU的智能屏产品型号与内核对照表
  5. Spring Cloud Eureka 自我保护机制(EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY)
  6. 【雅思大作文考官范文】——第十八篇:“problem and solution essay”
  7. GitHub干货分享
  8. Web前端-JavaScript
  9. Flink程序 Timer实现定时操作
  10. 力扣OJ 剑指 Offer(1-30)