python-mpv-jsonipc
python-mpv-jsonipc copied to clipboard
If you have multiple scripts connected to the same mpv instance they all receive keypresses
If you have multiple scripts connected to the same mpv instance they all receive keypresses https://github.com/iwalton3/python-mpv-jsonipc/blob/9b16ab8eceb46bbc519a97e4ce8e79dceaf94bcf/python_mpv_jsonipc.py#L444 changing to self.keybind = time.time_ns() could make it so that ids are more unique to avoid clashes
could also use uuid1().int but dont know if thats overkill
It seems like terminating an mpv instance from a different mpv instance also has a problem. a thread stays open:
left_mpv.quit_callback = right_mpv.terminate
right_mpv.quit_callback = left_mpv.terminate
for example:
from python_mpv_jsonipc import MPV
def auto_seek(x_mpv, delay=0.0):
x_mpv.wait_for_property('duration')
time.sleep(delay)
while True:
for _ in range(20):
x_mpv.command("seek", "0.2", "relative-percent")
time.sleep(0.05)
for _ in range(5):
x_mpv.command("seek", "3", "relative-percent")
time.sleep(1.2)
left_mpv = MPV()
right_mpv = MPV()
left_mpv.play(left_side)
right_mpv.play(right_side)
left_mpv.quit_callback = right_mpv.terminate
right_mpv.quit_callback = left_mpv.terminate
with ThreadPoolExecutor() as e:
e.submit(auto_seek, left_mpv)
e.submit(auto_seek, right_mpv, delay=0.4)