树莓派4b连接蓝牙音箱/耳机播放音乐 命令行

1.树莓派系统安装
坑1: 刚开始因为查阅树莓派4B的cpu是armv8架构是支持64位的,然后准备做服务器,因此下载了centos7-aarch64,烧写系统到SD卡,插上树莓派,树莓派连接显示器,无反应。
坑2: 折腾了半天没反应,继续逛逛中国科技大学镜像站,看到centos还有一款镜像是带有rasp、pi等类似字样的镜像,下载并烧写到SD卡。插上树莓派,接上显示器,开机。镜像是minimal的,只有1g左右,开机速度几秒钟。安装成功。默认root用户,密码centos。
连接wifi: 1)查看网卡设备名称:命令ifconfig,显示w叉叉叉就是无线网卡名称 2)连接,命令wpa_supplicant -B -i 无限网卡名称 -c <(wpa_passphrase "ssid" "psk") (连接无线网ssid,密码psk),连接成功。
配置静态ip: 有线网络和无线网络的配置修改vim /etc/sysconfig/network-scripts/ifcfg-你的网卡名字或者WIFI名字。要修改或新增的条目如下:

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.x.x # 要设置的静态ip地址
NETMASK=255.255.255.0 # 子网的掩码
GATEWAY=192.168.0.1 #网关
DNS1=114.114.114.114
DNS2=x.x.x.x # 百度随便dns服务器ip填进去

重启网络服务,systemctl restart network.service
换国内源,准备 开启ssh服务: 1)安装命令 sudo yum install openssh-server 2)通过修改配置文件打开22端口,命令 vim /etc/ssh/sshd_config,按键盘"/" 搜索"Port 22",去掉前面的"#",即打开注释,"PermitRootLogin yes“同意使用root用户登录,”PasswordAuthentication yes"使用密码验证登录,退出并保存。
重启sshd服务,即重新加载修改过的配置文件,命令:service sshd restart 或者systemctl restart sshd.service
另一台计算机,windows系统下载免费的Putty,mac系统直接终端敲命令 ssh root@树莓派ip地址,第一次登录会有提示,输入yes,然后要你输入密码,输入完就连接成功了。 到现在还没有坑,坑在后面。连接蓝牙,有坑! 翻了很多教程,比如,下载bluez等软件,然后命令行输入 bluetoothctl操作连接蓝牙,一直无法扫描设备,干脆说是没有装驱动吧?我也搞不清,反正各种教程试了一遍都没用。于是,我决定老老实实用回官方的带图形界面的raspbian(现在官方改名叫raspberry pi os)。

2.重装官方系统后,因为有图形界面就好搞了。之前找的关于bluetoothctl的教程就好使了。但是有图形界面,那就直接鼠标点击连接蓝牙音箱,下载个音乐测试蓝牙音箱正常工作。那么问题来了,我要远程登录树莓派并且通过蓝牙音箱播放音乐该怎么做?
继续网上翻教程,有用pygame.mixer.music.play()播放,但是对mp3格式支持不友好,可是我下的是常用的mp3格式,放弃。那么用其他命令行软件尝试吧!omxplayer需要图形界面,不知道有没有去图形化的选项。sox可以命令行播放,要注意的是:sudo play -t mp3 xxx.mp3。需要加-t mp3指定文件类型,否则你只会听到噪音和远程会卡死。FFmpeg 的ffplay命令可以,需要加入参数-nodisp去图形化,sudo ffplay -nodisp xxx.mp3,但是不知道为啥播放中途蓝牙音箱掉线了…但是终归还是实现了标题这个操作。
坑3: 在试验的中途,我尝试将耳机插入树莓派的音频孔里。导致一些配置文件被修改了。也就是导致了蓝牙音箱不是音频的默认输出,而是耳机成为了输出对象。下面会给出配置文件让你们通过命令行想要哪个作为输出对象就让哪个作输出对象,主要是对raspbian的~/.asoundsrc文件的修改。目前有三个输出对象,1) 板载的音频孔(耳机或者有线音箱) 2)HDMI屏幕后面的音频孔 3)板载蓝牙连接的蓝牙音箱或蓝牙耳机。
三个配置文件如下:
默认输出音频设备 Analog(板载的音频孔) ~/.asoundrc-Analog.bak

pcm.!default {
  type asym
  playback.pcm {
    type plug
    slave.pcm "output"
  }
  capture.pcm {
    type plug
    slave.pcm "input"
  }
}


pcm.output {
	type hw
	card 1
}

ctl.!default {
	type hw
	card 1
}

默认输出音频设备 外接显示器的音频孔 ~/.asoundrc-HDMI.bak

pcm.!default {
  type asym
  playback.pcm {
    type plug
    slave.pcm "output"
  }
  capture.pcm {
    type plug
    slave.pcm "input"
  }
}


pcm.output {
	type hw
	card 0
}

ctl.!default {
	type hw
	card 0
}

默认输出音频设备 板载蓝牙 ~/.asoundrc-bluetooth.bak

pcm.!default {
  type asym
  playback.pcm {
    type plug
    slave.pcm "output"
  }
  capture.pcm {
    type plug
    slave.pcm "input"
  }
}


pcm.output {
	type bluealsa
	device "蓝牙音箱或耳机的mac地址"
	profile "a2dp"
}

ctl.!default {
	type bluealsa
}

切换默认输出音频命令:

rm ~/.asoundrc
cp ~/.asoundrc-bluetooth.bak  ~/.asoundrc

3.播放音乐
FFmpeg播放媒体工具ffplay
‘-x width’ 强制以 “width” 宽度显示
‘-y height’ 强制以 “height” 高度显示
‘-an’ 禁止音频
‘-vn’ 禁止视频
‘-ss pos’ 跳转到指定的位置(秒)
‘-t duration’ 播放 “duration” 秒音/视频
‘-bytes’ 按字节跳转
‘-nodisp’ 禁止图像显示(只输出音频)
‘-f fmt’ 强制使用 “fmt” 格式
‘-window_title title’ 设置窗口标题(默认为输入文件名)
‘-loop number’ 循环播放 “number” 次(0将一直循环)
‘-showmode mode’ 设置显示模式
可选的 mode :
‘0, video’ 显示视频
‘1, waves’ 显示音频波形
‘2, rdft’ 显示音频频带
默认值为 ‘video’,你可以在播放进行时,按 “w” 键在这几种模式间切换
‘-i input_file’ 指定输入文件
‘-autoexit’ 播放完成后自动退出
‘-exitonkeydown’ 任意键按下时退出
‘-exitonmousedown’ 任意鼠标按键按下时退出

命令行:ffplay -nodisp test.mp3

全文都是想要通过命令行来实现,其中有用到图形界面得到了三个配置文件,但是最终给出的三个配置文件可以使这一目的实现!

你可能感兴趣的:(Linux->树莓派)