При использовании Python Sounddevice, есть ли способ определить аппаратный идентификатор данного устройства в списке устройств sounddevice?
У вас есть вопрос по Python Sounddevice здесь...
Вопрос:
"When using Python Sounddevice, is there any way to determine the hardware
ID of a given device in sounddevice's devices list ?"
Зачем мне это делать?
Предыстория:
Ситуация такова, что у меня есть около 12 устройств Android, на которых мне нужно выполнить несколько автоматических тестов, причем большая часть автоматизации обрабатывается скриптами Python через задания Jenkins. Проблема заключается в том, что во время тестирования эти андроид устройства могут работать нестабильно и должны быть выключены. Использование множества переключателей / разветвителей, управляемых по Wi-Fi/USB, позволяет довольно просто отключить питание этих устройств, но, к сожалению, когда они выключены, их можно включить только через механическую кнопку питания или ИК-пульт дистанционного управления. Решение, которое я сейчас ищу, состоит в том, чтобы использовать один из этих 3,5-мм аудиоразъемов с ИК-светодиодами (как правило, предназначен для использования в смартфоне, поэтому его можно использовать в качестве универсального пульта дистанционного управления), подключенного к дешевой звуковой карте USB стоимостью ~ $ 3.... по одному на каждый из телевизоров. Таким образом, для 12 устройств с Android у меня будет 12 звуковых карт USB той же модели, подключенных к подчиненному устройству Jenkins, на котором запущена автоматизация. У меня есть инструкции по захвату и очистке сигнала ВКЛ / ВЫКЛ с универсального пульта дистанционного управления и превращению его в соответствующий файл wav, так что это, вероятно, не проблема, и я смог успешно настроить таргетинг на отдельное устройство вывода звука из списка sounddevice устройства. К сожалению, названия звуковых карт одинаковы, поэтому я по сути не знаю, какой индекс устройства ведет к какому устройству Android.
Поэтому я думаю, что моя конечная цель - от сценария на python, чтобы можно было воспроизводить определенный файл wav через конкретное устройство вывода звука на коробке Ubuntu, к которой подключено 5 - 12 идентичных звуковых карт USB. Хотя мне нравится простота Sounddevice, я в конечном счете не привязан к его использованию, если есть лучший / более эффективный подход *. Я бы очень хотел настроить это так, чтобы переопределяющий скрипт мог правильно связать аудиоинтерфейсы с целевыми устройствами Android, даже если перезагружается подчиненное устройство Jenkins и / или по каким-то причинам меняются номера индекса Sounddevice.
Любая информация или предложения с благодарностью!
- Я также понимаю, что мог бы также написать и для каждого полного набора тестов запустить скрипт / метод "калибровки", который в конечном итоге выясняет, что происходит, проверяя все устройства, запуская включение / выключение wav на заданном интерфейсе, а затем проверяя, чтобы увидеть какое устройство просто исчезло, последовательно через весь список интерфейсов, но я надеюсь найти более точное решение.