1分析已有代碼項目html
Android從USB聲卡錄製高質量音頻-----使用libusb讀取USB聲卡數據java
github 項目:usbaudio-android-demoandroid
usb聲卡取數據項目也是參考的usbaudio-android-demogit
其餘參考資料 :github
Android無驅usb音頻實現
usbaudio-android-demo做者在stackoverflow上的回答 capturing audio using libusb in Android
usb協會uac工具書 USB AUDIO Device CLASS工具
使用jni,用java類usbAudio類調用native庫,類結構及libusb調用流程以下圖atom
對於原做者:.net
1.alternatesetting3d
一個接口能夠有多種setting,即所謂的alternatesetting,好比在打印機驅動程序裏,不一樣的setting能夠代表使用不一樣的通訊協議,又好比在聲音設備驅動中setting能夠決定不一樣的音頻格式.那麼我做爲usb設備驅動程序我如何知道這些呢?首先,對於任何一個interface來講,usb spec規定了默認的setting是setting zero,即0號設置是默認設置,而若是一個interface能夠有多種setting,那麼每個setting將對應一個interface描述符,換言之,即使你只有一個interface,可是因爲你可能有兩種setting,那麼你就有兩個interface描述符,而它們對應於同一個interface編號,或者說咱們知道接口描述符裏面有一個成員,bInterfaceNumber和一個bAlternateSetting,就是對於這種狀況,兩個interface描述符將具備相同的bInterfaceNumber,而不相同的是bAlternateSetting,另外一方面,由於不一樣的setting徹底有可能致使須要不一樣的端點,因此也將有不一樣的端點描述符.htm