使用alsa的API,設定和獲得聲音

2021-07-27 10:14:00 字數 1370 閱讀 1417

只是乙個使用alsa的api,設定和獲得聲音的入門例子,

之後的事情就參考api自己玩吧.

api**:

也可以參考alsa-unit的程式**

#include #include #include #include #include #include #include #include #include #include #include #include #include "amixer.h"

//使用 amixer scontrols,中的選項

char * sctrlstr = "digital input";

int main()

//乙個簡單使用的例子

int setcapval()

snd_mixer_attach(handle, "default");

snd_mixer_selem_register(handle, null, null);

snd_mixer_load(handle);

//迴圈找到自己想要的element

elem = snd_mixer_first_elem(handle);

while(elem)

//如果不是就繼續尋找下乙個

elem = snd_mixer_elem_next(elem); }

if (!elem)

//輸出elem的名字

printf( "elem name : %s\n", snd_mixer_selem_get_name (elem) );

snd_mixer_selem_get_capture_volume_range(elem, &volmin, &volmax);

printf("音量範圍: %ld -- %ld\n", volmin, volmax);

snd_mixer_handle_events(handle);

snd_mixer_selem_get_playback_volume(elem, snd_mixer_schn_front_left, &leftval);

snd_mixer_selem_get_playback_volume(elem, snd_mixer_schn_front_right, &rightval);

printf("當前音量: leftval = %ld, rightval = %ld\n", leftval, rightval);

//判斷是不是單聲道

if( snd_mixer_selem_is_playback_mono( elem) )

else

//關閉混音器裝置

snd_mixer_close(handle);

handle = null;

}

API封裝和token設定

三 如何封裝?總結在日常做專案請求介面時,在不同的元件都有不同的介面,要修改更換介面的時候要乙個個找,太不方便了,這時候我們就需要封裝api。封裝api就相當於搞乙個的檔案或資料夾來統一管理你的介面路徑,在你修改查詢介面時更方便,也可以減少元件裡的 操作,是專案結構內容更加清晰。token是服務端生...

API的理解和使用

2.1.1 全域性命令 檢視所有鍵 key 插入字串鍵值對 set hello world hello是key,world是value dbsize 鍵總數 插入列表型別的鍵值對 rpush mylist a b c d e f g dbsize直接獲取redis內建的鍵總數變數 o 1 keys ...

capset capget 設定和獲得程序許可權

capset 和capget 分別用來設定和獲取程序許可權 int capget cap user header t hdrp,cap user data t datap int capset cap user header t hdrp,const cap user data t datap 相關...