只是乙個使用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 相關...