MacOS – как выбрать аудиоустройство с терминалаPython

Программы на Python
Ответить
Anonymous
 MacOS – как выбрать аудиоустройство с терминала

Сообщение Anonymous »

Я работал над программой Python для создания аудио, а также для воспроизведения существующих звуковых файлов. Я могу запустить несколько процессов и заставить их воспроизводиться на динамиках ноутбука, но мне было интересно, можно ли отправить каждый сигнал на отдельное звуковое устройство. Это сделано для того, чтобы я мог применять эффекты к некоторым процессам, но не ко всем вместе.
Я использую MacBook и Python simpleaudio, который вызывает AudioToolbox для подключения к устройству вывода. У меня также установлен ffmpeg, поэтому можно использовать ffplay, если это проще. Библиотека pydub использует это — она экспортирует текущую волну во временный файл, а затем использует подпроцесс и ffplay для ее воспроизведения.
Я могу получить список устройств, но не знаю, как использовать этот список для выбора устройства.

Код: Выделить всё

% ffplay -devices
Devices:
D. = Demuxing supported
.E = Muxing supported
--
E audiotoolbox    AudioToolbox output device
D  avfoundation    AVFoundation input device
D  lavfi           Libavfilter virtual input device
E sdl,sdl2        SDL2 output device
D  x11grab         X11 screen capture, using XCB
Я видел сообщение, в котором предлагалось использовать ffmpeg для получения списка устройств, но опять же не могу понять, как использовать этот список.

Код: Выделить всё

% ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -list_devices true -
Input #0, lavfi, from 'sine=r=44100':
Duration: N/A, start: 0.000000, bitrate: 705 kb/s
Stream #0:0: Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
[AudioToolbox @ 0x135e3f230] CoreAudio devices:
[AudioToolbox @ 0x135e3f230] [0]               Background Music, (null)
[AudioToolbox @ 0x135e3f230] [1]   Background Music (UI Sounds), BGMDevice_UISounds
[AudioToolbox @ 0x135e3f230] [2]         MacBook Air Microphone, BuiltInMicrophoneDevice
[AudioToolbox @ 0x135e3f230] [3]           MacBook Air Speakers, BuiltInSpeakerDevice
[AudioToolbox @ 0x135e3f230] [4]               Aggregate Device, ~:AMS2_Aggregate:0
Output #0, audiotoolbox, to 'pipe:':
Metadata:
encoder         : Lavf59.27.100
Stream #0:0: Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s
Metadata:
encoder         : Lavc59.37.100 pcm_s16le
size=N/A time=00:00:05.06 bitrate=N/A speed=0.984x
video:0kB audio:436kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Exiting normally, received signal 2.
По крайней мере, это дает мне узнаваемый список устройств. Если я добавлю больше агрегатных устройств, смогу ли я воспроизводить разные файлы на каждом устройстве?

Подробнее здесь: https://stackoverflow.com/questions/777 ... m-terminal
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»