С помощью модуля sounddevice вы можете сделать это следующим образом:
import sounddevice as sd
samplerates = 32000, 44100, 48000, 96000, 128000
device = 0
supported_samplerates = []
for fs in samplerates:
try:
sd.check_output_settings(device=device, samplerate=fs)
except Exception as e:
print(fs, e)
else:
supported_samplerates.append(fs)
print(supported_samplerates)
Когда я попробовал это, я получил:
32000 Invalid sample rate
128000 Invalid sample rate
[44100, 48000, 96000]
Вы также можете проверить, поддерживается ли определенное количество каналов или определенный тип данных.
Для получения более подробной информации ознакомьтесь с документацией: check_output_settings () .
Конечно, вы также можете проверить, является ли устройство поддерживаемым устройством ввода с помощью check_input_settings () .
Если вы не знаете идентификатор устройства, взгляните на query_devices () .
Я не думаю, что это все еще актуально, но это также работает с Python 2.6, вам просто нужно удалить скобки из операторов print
и заменить except Exception as e:
на except Exception, e:
.