Android用usb命令控制音量,如何在Android平台上使用USB Audio设备
上网搜了有关USB Audio Hotplug的东西,比较适用的资源如下:
题目看起来很吻合我们的问题,事实上并没有多少参考价值。其中脚本/etc/hotplug/usb/extigy或许可以捕捉到USB Audio设备的热插拔事件,应该可以进一步验证和利用,留意这点。
这是利用udev来获取USB热插拔事件,虽然Android没有udev,但例子程序对热插拔事件字符串的处理值得参考。
其实我们工作的第一步:验证USB Headset是否可以回放录音。
3.1、插上USB Headset,可以看到alsa的确加载了USB Audio,如下:
~ # cat /proc/asound/cards
0 [WMTSOC ]: HWDAC - WMT_SOC
WMT_SOC (HWDAC)
1 [default ]: USB-Audio - C-Media USB Headphone Set
C-Media USB Headphone Set at usb-0000:00:06.0-1, full speed
3.2、参考了这个链接,写了如下的配置文件/etc/asond.conf:
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:1,0"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}
重启后,声音就从Headset出来了。
hw:1,0对应card1即USB-Audio - C-Media USB Headphone Set
1.设置默认声卡为USB声卡
在$HOME下新建.asoundrc
$cd $HOME
$nano .asoundrc
输入以下内容
defaults.ctl.card 1
defaults.pcm.card 1
最后的1是USB声卡的编号,可通过以下命令查看
$aplay -l
或
$cat /proc/asound/cards
然后重启一下alsa就把1号声卡(usb声卡)设置成默认声卡了。
测试录音
$arecord -d 10 test.wav
测试播音
$aplay test.wav
2.播音和录音为不同声卡时,可以参考以下配置,修改~/.asoundrc
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:0,0"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
其中,hw:1,0表示card 1 device 0
3.调节声卡音量
打开终端,输入
$alsamixer
即可调节音量
按 f6 会出现声卡列表
一般来说,usb 声卡总是第二位的,声卡编号是1(默认声卡是0)
4.测试指定声卡
arecord -D "plughw:5,0" -d 3 temp.wav
aplay -D "plughw:1,0" temp.wav
Android用usb命令控制音量,如何在Android平台上使用USB Audio设备相关推荐
- android 通过adb命令控制wifi开关
android 通过adb命令控制wifi开关 2017年08月23日 17:47:46 刘国栋 阅读数:14598 版权声明:本文为博主原创文章,转载请声明文章出处. https://blog.cs ...
- android机上没有usb调试模式吗,如何在Android上启用USB调试
Android系统的手机以及平板电脑占有巨大的市场份额,当使用USB数据线完成电脑端与安卓手机端数据传输时,需要将安卓手机开启USB调试模式. 什么是USB调试?USB调试是一种模式,允许Androi ...
- android studio shell 命令行自动打包(mac 平台)
android studio shell 命令行自动打包(mac 平台) 作者 CrazySongHang 关注 2015.04.10 22:56* 字数 494 阅读 4165评论 1喜欢 2 如果 ...
- linux arm 汇编学习,如何在LINUX平台上学习GNU ARM汇编
本例说明如何在LINUX平台上学习GNU ARM汇编. 1.软件环境 vmware 5.0 + redhat 9.0 + skyeye 1.2.4 + arm-elf 工具 2. 源文件 a.s -- ...
- 如何在android模拟器中模拟sd卡,如何在Android模拟器中模拟SD卡
如何在Android模拟器中模拟SD卡 简介 Android允许开发者创建一个SD卡镜像并在启动模拟器加载它, 用于模拟物理设备中的SD卡. 下面将介绍: 1. 如何创建一个SD卡镜像? 2. 如何拷 ...
- android+模拟器方向,关于仿真:如何在Android模拟器中更改屏幕方向?
如何将仿真器屏幕方向更改为横向或纵向? stackoverflow.com/questions/2618967/&hellip: 在Windows7上左Ctrl+F11 在Windows8.1 ...
- android 最新sdk版本,详解如何在Android studio中更新sdk版本和build-tools版本
一.首先看下Android开发用到的sdk目录: build-tools 保存着一些Android平台相关通用工具,比如adb.和aapt.aidl.dx等文件. aapt即Android Asset ...
- android点击下拉历史记录,如何在Android上删除浏览历史记录-万兴恢复专家
第4部分:如何在Android上永久清除历史记录? 只需删除数据或使用恢复出厂设置无法永久擦除Android.在恢复过程的帮助下,数据很容易恢复,Avast已经证明了这一点.dr.fone工具包 - ...
- Android多个imei如何获取,如何在Android 10中获取IMEI号,这是获取在Android 10及以下Android 10中获取IMEI号的代码...
如何在android 10中获取imei编号,这是获取在android 10及以下android 10中获取imei编号的代码. if (android.os.Build.VERSION.SDK_IN ...
最新文章
- 中国人工智能学会通讯——人工智能在各医学亚专科的发展现状及趋势 1.3 人工智能在各医学亚专科的发展态势...
- DX11 preprocessor Dynamic shader linkage
- Prometheus监控业务指标
- CES2018:英特尔披露量子计算和神经拟态计算研究最新进展
- Learning to Rank 中Listwise关于ListNet算法讲授及实现
- Uva536 Tree Recovery二叉树重建(先序和中序确定二叉树,后序输出)
- 数据结构和算法,也就那么回事儿
- 静态组件_静态网站的出色附加组件,可让您跳舞
- win10的11对战平台突然无法启动魔兽
- 【java笔记】Properties类
- vue怎么使用eval_javascript - 在方法内部的Vue2中使用eval()可以工作,但不能同时工作 - 堆栈内存溢出...
- 简述hdfs工作原理_简述HDFS的原理?
- Android 将自己的应用改为系统应用
- 西门子plc与ABB510变频器modbus通讯
- 如何免费下载知网论文
- Gossip协议笔记--谣言、流行病协议
- MySql 新增数据
- html中input type什么意思,HTML中type是什么意思
- web自动化(鼠标、键盘操作)
- 交大博士血泪自述:不是读博的料,别上博士这条船
热门文章
- 训练日志13 (8.7)
- 一级市场二级化:区块链正在颠覆风险投资
- 联想笔记本计算机在哪里,联想笔记本电脑的麦克风在什么位置
- hpm128无法共享打印_HP M128fn打印机共享后无法打印
- 2017年 第8届 蓝桥杯 Java B组 省赛真题详解及总结
- Cloudera Manager安装之Cloudera Manager安装前准备(CentOS6.5)(一)
- android培训学习班,常州android培训学习班
- 刘润:思考维度越多,理解商业越深
- 5G纯干货|毫米波概述与优缺点
- Unity 代码实现形成圆形及形成球形