其中,deviceName是指USB声卡的名称,primary表示第一个声卡,secondary表示第二个声卡。通过这种方式,系统可以识别出两个USB声卡。
示例代码:
public class MyAudioDeviceCallback extends AudioDeviceCallback { @Override public void onAudioDevicesAdded(AudioDeviceInfo[] addedDevices) { for(AudioDeviceInfo deviceInfo:addedDevices){ Log.d(TAG, "onAudioDevicesAdded: " + deviceInfo.getProductName().toString()); } }
@Override
public void onAudioDevicesRemoved(AudioDeviceInfo[] removedDevices) {
for(AudioDeviceInfo deviceInfo:removedDevices){
Log.d(TAG, "onAudioDevicesRemoved: " + deviceInfo.getProductName().toString());
}
}
}
在MainActivity中添加如下代码:
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); audioManager.registerAudioDeviceCallback(new MyAudioDeviceCallback(), null);
通过AudioDeviceCallback来进行声卡的动态管理,可以达到同时识别两个USB声卡的目的。