专栏首页美丽应用在Volumio中使用命令行网易云音乐

在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后应该恢复正常了:

  在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,播放一首音乐,如果还是听不到音乐的话按"="键即可增大音量,不出意外的话,音乐可以正常播放了~

参考资料:

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关于本站

    美丽应用
  • 树莓派折腾记:纯手机+数据线连接树莓派

    美丽应用
  • 树莓派折腾记:打造HiFi解码转盘(基于Volumio和Dac扩展板)

    美丽应用
  • django后台美化

    INSTALLED_APPS = [ “simpleui”, “django.contrib.admin”, “django.contrib.auth”, # ...

    kirin
  • Istio 1.2发布:版本迭代加快,流量管理与安全增强

    不同于1.1版本万众期待,发布时间一推再推,最后历时七个半个月,1.2的发布效率确实出乎很多人意外。但是注意到1.2版本前1.1版本足足发满了1.1.1~1.1...

    Jintao Zhang
  • python 获取脚本所在目录的正确方法

    如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数。

    py3study
  • Kafka 中使用 Avro 序列化框架(二):使用 Twitter 的 Bijection 类库实现 avro 的序列化与反序列化

    使用传统的 avro API 自定义序列化类和反序列化类比较麻烦,需要根据 schema 生成实体类,需要调用 avro 的 API 实现 对象到 byte[]...

    CoderJed
  • Spring Security 中如何让上级拥有下级的所有权限?

    松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里-->Spring Boot+Vue+微人事视频教程

    江南一点雨
  • 飞步神速!何晓飞团队完成无人车深度学习芯片流片,算力创国内新高

    何晓飞教授自开启无人车创业以来,一如治学,过程中始终低调,但并不意味着没有大进展。

    量子位
  • Go基础之--操作Mysql(二)

    在上一篇文章中主要整理了Golang连接mysql以及一些基本的操作,并进行了大概介绍,这篇文章对增删查改进行详细的整理 读取数据 在上一篇文章中整理查询数据...

    coders

扫码关注云+社区

领取腾讯云代金券