下面列出了android.media.AudioManager#GET_DEVICES_OUTPUTS 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@TargetApi(23)
static List<AudioDeviceListEntry> createFilteredListFrom(AudioDeviceInfo[] devices, int directionType, Set<Integer> filteredTypes){
List<AudioDeviceListEntry> listEntries = new Vector<>();
for (AudioDeviceInfo info : devices) {
if (directionType == AudioManager.GET_DEVICES_ALL ||
(directionType == AudioManager.GET_DEVICES_OUTPUTS && info.isSink()) ||
(directionType == AudioManager.GET_DEVICES_INPUTS && info.isSource())) {
if (filteredTypes.contains(info.getType())) {
continue;
}
listEntries.add(new AudioDeviceListEntry(info.getId(), info.getType(),
info.getProductName() + ": " + AudioDeviceInfoConverter.typeToString(info.getType())));
}
}
return listEntries;
}
@TargetApi(23)
public void setDirectionType(int directionType){
this.mDirectionType = directionType;
if (directionType == AudioManager.GET_DEVICES_OUTPUTS) {
// Add an entry for NONE to the list
mDeviceAdapter.insert(new AudioDeviceListEntry(AudioRecordStreamProvider.AUDIO_DEVICE_ID_NONE, AudioDeviceInfo.TYPE_UNKNOWN,
mContext.getString(R.string.audio_device_none)), 0);
}
setupAudioDeviceCallback();
}
@TargetApi(23)
public void setDirectionType(int directionType){
this.mDirectionType = directionType;
if (directionType == AudioManager.GET_DEVICES_OUTPUTS) {
// Add a default entry to the list and select it
mDeviceAdapter.insert(new AudioDeviceListEntry(AudioRecordStreamProvider.AUDIO_DEVICE_ID_NONE, AudioDeviceInfo.TYPE_UNKNOWN,
mContext.getString(R.string.audio_device_none)), 0);
setSelection(0);
}
setupAudioDeviceCallback();
}
/**
* Create a list of AudioDeviceListEntry objects from a list of AudioDeviceInfo objects.
*
* @param devices A list of {@Link AudioDeviceInfo} objects
* @param directionType Only audio devices with this direction will be included in the list.
* Valid values are GET_DEVICES_ALL, GET_DEVICES_OUTPUTS and
* GET_DEVICES_INPUTS.
* @return A list of AudioDeviceListEntry objects
*/
@TargetApi(23)
static List<AudioDeviceListEntry> createListFrom(AudioDeviceInfo[] devices, int directionType){
List<AudioDeviceListEntry> listEntries = new Vector<>();
for (AudioDeviceInfo info : devices) {
if (directionType == AudioManager.GET_DEVICES_ALL ||
(directionType == AudioManager.GET_DEVICES_OUTPUTS && info.isSink()) ||
(directionType == AudioManager.GET_DEVICES_INPUTS && info.isSource())) {
listEntries.add(new AudioDeviceListEntry(info.getId(), info.getType(),
info.getProductName() + " " + AudioDeviceInfoConverter.typeToString(info.getType())));
}
}
return listEntries;
}