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设备的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 把Sqlite当嵌入式KV数据库用
- 下一篇: 郑强语录