кажется, что даже с этими параметрами mpv не загружает файлы LyRiC (.lrc
). что мне нужно было сделать, так это создать небольшой скрипт плагина mpv и поместить его в каталог scripts
, который находится в каталоге config
mpv.
-- load lrc files
function file_exists(name)
local f=io.open(name,"r")
if f~=nil then io.close(f) return true else return false end
end
function GetLrcPath(name)
return name:gsub("(%..+)$", ".lrc")
end
function open_handler()
lrcPath = GetLrcPath(mp.get_property("path"))
if file_exists(lrcPath) then
mp.set_property("options/sub-files", lrcPath)
end
end
mp.register_event("start-file", open_handler)
В своем редактировании вы добавили код для чтения из порта в функцию open_port()
. Хотя кажется, что это может сработать, это плохой стиль :, теперь функция open_port()
специфична для нужд этой программы, и ее уже нелегко выбрать и повторно -использовать в каком-то будущем проекте без модификаций. И название функции уже не точно описывает, что делает функция.
Я не уверен, -что установка вашего последовательного соединения верна. :вы говорите, что используете виртуальную машину и подключен USB, но, похоже, вы используете /dev/ttyS0
на обоих концах. Это относится к физическому последовательному порту, а не к порту на базе USB -.
Возможно, вы настроили программное обеспечение виртуализации для подключения реального физического последовательного порта или последовательного порта, сгенерированного драйвером последовательного преобразователя USB -хоста, к виртуальной машине /dev/ttyS0
:, если это так, то это может работать на стороне ПК.. Но это не по умолчанию :, вы обязательно должны настроить это в своем программном обеспечении для виртуализации, иначе оно не будет работать.
Более распространенной конфигурацией будет настройка программного обеспечения для виртуализации, позволяющая виртуальной машине получать доступ к USB-стороне последовательного преобразователя USB -в целом :, после чего она будет отображаться в виртуальной машине как что-то вроде /dev/ttyUSB0
вместо этого (в зависимости от точного типа последовательного преобразователя ).
На стороне RasPi/dev/ttyS0
не существует в конфигурации Pi Zero W по умолчанию -типичным последовательным портом является /dev/ttyAMA0
, но в конфигурации по умолчанию он используется функциональностью Bluetooth. Если вы подключили разъем USB последовательного преобразователя USB -к RasPi, он также будет отображаться здесь как /dev/ttyUSB0
.
Поскольку ваш побочный скрипт RasPi -не проверяет наличие устройства, возможно, он создал файл с именем /dev/ttyS0
, содержащий одну строку с номером 1
. Запустите эту команду на RasPi, чтобы узнать, является ли его /dev/ttyS0
действительным последовательным устройством :
test -c /dev/ttyS0 && echo "Maybe valid" || echo "Definitely not correct"
Если вы используете физическое последовательное соединение(/dev/ttyS0
или/dev/ttyAMA0
)на стороне RasPi, у вас должен быть впаян 40 -контактный разъем на RasPi Zero W, и что-то должно быть подключено к контактам 8 и 10 этот разъем, насколько я понимаю. Вам также пришлось бы использовать raspi-config
, чтобы разрешить доступ к последовательному порту.
Если вы можете получить доступ к RasPi с помощью SSH, это означает, что у вас есть сетевое соединение :, оно вообще ничего не говорит о состоянии последовательного соединения.