1. 程式人生 > >Android音訊系統學習筆記

Android音訊系統學習筆記

1、配置檔案/system/etc/asound.conf

        alsa體系提供了這樣一種機制:應用層直接改變音訊codec的暫存器,具體而言:linux驅動中建立snd_kcontrol_new控制結構,並關聯到codec暫存器,asound.conf檔案通過控制結構名字,就能關聯到暫存器,從而改變暫存器的值。asound.conf檔案主要用來做Android音訊的路由控制:不同路由可以設定多個暫存器的不同配置組合,形成不同的音訊通道,從而當路由改變時,底層codec通道隨之改變。

        配置檔案:

        /etc/asound.conf(簡易配置) :

        {{{

              pcm.!default{

                  type hw

                  card 1

                  devive 7

                }  

              ctl.!default{

                  type hw

                  card 1

                  device 7

                 }  

        }}}

        card, device必須對應hdmi的音效卡號和裝置號,可以使用aplay -l檢視對應的hdmi裝置,可能會有出現多個hdmi裝置,確定當前可以使用的hdmi裝置的方法如下:

#. cat /proc/asound/cards 檢視nvidia裝置對應的ID號(假設=1)

#. alsamixer -c 1 開啟聲音設定,其中<S/PDIF>即為HDMI輸出,“MM”代表靜音,alsa在每次重啟聲音裝置時都會預設為靜音,所以必須首先開啟音量再進行後續的操作。

#. alsactl store 儲存上述配置

#. aplay -D hw:1,7  /usr/share/sounds/alsa/test.wav  "hw後的1代表音效卡號,7代表裝置號,需要根據aplay -l的輸出來確定這兩個數字"找到對應的hdmi輸出口。