iNNOKENTIY21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: param ( # Аргументы командной строки (полное имя файла видео или ссылка) [string[]]$Arguments, # Название аудиоустройства из команды mpv.com --audio-device=help [string]$AudioDeviceTitle ) function Get-AudioDevices { # Аргумент запуска MPV для получения списка аудиоустройств $arg = "--audio-device=help" # Сохранить в переменную текущую кодовую страницу вывода в консоли $enc = [Console]::OutputEncoding # Назначить кодовую страницу вывода в консоли UTF-8 # Названия аудиоустройств могут быть не латиницей [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("utf-8") # Вызов MPV для получения списка аудиоустройств, парсим в powershell объект & $MPV $arg | Where-Object {$_ -match "\'(.+)\'\s\((.+)\)"} | Select-Object @{n = "Guid"; e = {$Matches[1]}}, @{n = "Title"; e = {$Matches[2]}} # Возврат ранее сохраненной кодовой страницы вывода в консоли [Console]::OutputEncoding = $enc } $MPV = "$PSScriptRoot\mpv.exe" if ($AudioDeviceTitle) { # Отбор аудиоустройства согласно названию и получение его идентификатора $AudioDeviceGuid = (Get-AudioDevices | Where-Object {$_.Title -eq $AudioDeviceTitle}).Guid # Запуск MPV с аргументами и выбранным аудиоустройством & $MPV $Arguments --audio-device=$AudioDeviceGuid } else { # Простой запуск MPV с аргументами & $MPV $Arguments } <# Поглядеть доступные ауди выходы: mpv.com --audio-device=help "Headphones (Realtek(R) Audio)" "Динамики (Realtek(R) Audio)" "Realtek Digital Output (Realtek(R) Audio)" "VX2453 Series (Аудио Intel(R) для дисплеев)" #> |
|