在Volumio中使用命令行网易云音乐

  文章更新:
  20170304 初次成文

  问题提出:

  虽然适用于Linux系统的网易云音乐PC客户端已经在网易云音乐官网上架(仅适用于深度和Ubuntu系统),但因为我们的树莓派是Arm架构,所以专为PCLinux开发的客户端是不能在我们小小的树莓派上跑的。好在Github上有大神搞出了基于Python的网易云音乐命令行版本NetEase-MusicBox(以下简称MusicBox):

  项目地址:
  https://github.com/darknessomi/musicbox

  庆幸的是,MusicBox是可以完美运行在树莓派的Raspbian上并可以通过树莓派板载的3.5mm插口将声音信号输出的。这也为我们小小的树莓派增加了更多的可玩性(比如可以为家庭音响系统提供在线音源等)。

  在上一篇文章中:

  玩转Volumio的DLNA特性

  小苏介绍了在Volumio上DLNA特性的几种使用姿势,但是唯独没有提到网易云音乐的DLNA特性。这是因为由于Android版网易云音乐对DLNA的兼容性原因,无法正常通过DLNA将音乐推送到Volumio中播放。但是通过BubbleUPnp或者AllCast却可以正常推送并播放音乐。但小苏又是个网易云音乐的重度用户,所以小苏就琢磨着能不能把MusicBox搞到Volumio上,这样就可以将音乐通过Dac扩展板解码后输出了(因为在Raspbian上MusicBox虽然是可以正常工作,但自带的3.5mm插口是有一些杂音的)~

  但是这个问题却折磨了小苏很久,因为Volumio基于Raspbian,所以命令行的网易云音乐是可以安装和运行的,但是音频信号输出却有点问题:

  1. 不论音乐是否在播放,树莓派板载的3.5mm插口都会输出超大音量的杂音信号;

  2. 当音乐正在播放时,Dac扩展板上的3.5mm插口听不到任何声音。

  这就非常蛋疼了,虽然MusicBox可以运行,但是无法输出音频信号MusicBox也属于摆设了。

  解决方案:

  经过小苏的锲而不舍夜以继日的的折腾,终于解决了这个问题。折腾步骤如下:
  
  1. 安装MusicBox:

  我们使用pip安装MusicBox,因为Volumio默认是没有部署Python环境的,所以在安装pip的时候apt包管理器会"顺便"帮我们部署好Python环境。

sudo apt-get install python-pip #安装pip包管理器及其依赖组件
sudo pip install NetEase-MusicBox #使用pip安装MusicBox
sudo apt-get install mpg123 #安装mp3解码器


  2. 测试MusicBox:

  MusicBox安装完成后,在终端中执行:

musicbox #(无需sudo)

  即可进入命令行版网易云音乐的界面。但如果你看到的界面只有字母和数字,而没有汉字的话你需要进行以下操作(如果显示没有问题则可以跳过这一步):

cd ~ #切换到用户主目录
vim .bashrc #编辑bash配置文件

  在.bashrc中,在文件末尾另起一行,加入以下内容:

# Locale Settings
export LC_CTYPE=en_US.UTF-8

  
  值得一提的是,Volumio的默认Shell是bash,如果你之前更换过Shell,那么你需要在~下找到你当前使用的Shell对应的配置文件来修改。

  保存之后退出当前SSH会话并重新登录(无需重启),重新执行musicbox后应该恢复正常了:

Screenshot_20170304-125910.png

  在Raspbian下,到这一步MusicBox就配置完成了。如果实在Volumio下,还需要进行屏蔽板载声卡的操作。
  
  
  3. 屏蔽板载声卡:

  终端执行:

sudo vim /boot/config.txt

  在其中找到这一行:

dtparam=audio=on 

  
  在这一行前加上#号注释掉:

# dtparam=audio=on 

  
  修改完成后保存,接着我们修改另一个文件:

sudo vim /etc/asound.conf

  此文件在默认情况下应该是一个空白文件,将以下内容填入此文件:

pcm.!default  {
 type hw card 0
}
ctl.!default {
 type hw card 0
}

  
  修改完成后,保存并重启系统。重启完成后,在终端执行:

aplay -l

  终端应该会返回以下结果:

**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0: HiFiBerry DAC+ HiFi pcm512x-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

  
  我们发现执行结果中只存在HiFiBerry一个声卡,说明我们屏蔽板载声卡的操作成功(在未屏蔽状态下执行aplay -l后,返回结果中应该有3.5mm,HDMI和HiFiBerry三个声卡)。

  接着进入MusicBox,播放一首音乐,如果还是听不到音乐的话按"="键即可增大音量,不出意外的话,音乐可以正常播放了~

Screenshot_20170304-132410.png
  
  
  参考资料:

  NetEase-MusicBox项目:
  https://github.com/darknessomi/musicbox

  全新配置 HiFiBox DAC + Volumio 系统:
  http://shumeipai.nxez.com/2016/12/04/configuring-volumio-155-for-hifibox-dac.html

添加新评论