这个问题特定于 iMac、python 和 VLC。
我编写了一个简短的 python 脚本来使用 VLC 播放一些随机视频文件,就像幻灯片放映但用于视频。当我按键盘上的“n”时,我希望脚本开始播放下一个文件。按“q”退出程序。
第一次按“n”或“q”时,效果非常好。 然而,随后按“n”没有任何效果。
有人知道我做错了什么吗?这是我的代码:
#!/usr/bin/env python3
import os
import random
import subprocess
from pynput import keyboard
from threading import Thread
video_directory = '/Volumes/T7/test'
video_files = [f for f in os.listdir(video_directory) if f.endswith(('.mp4', '.avi', '.mkv', '.mov', '.flv', '.wmv'))]
vlc_path = '/Applications/VLC.app/Contents/MacOS/VLC'
video_count = 20
random_videos = random.sample(video_files, video_count)
video_paths = [os.path.join(video_directory, video) for video in random_videos]
vlc_process = subprocess.Popen([vlc_path, '--video-on-top', '--fullscreen', video_paths[0]])
current_video = 0
def on_press(key):
global vlc_process
global current_video
if key == keyboard.KeyCode.from_char('n'):
vlc_process.terminate()
current_video += 1
if current_video < video_count:
vlc_process = subprocess.Popen([vlc_path, '--video-on-top', '--fullscreen', video_paths[current_video]])
elif key == keyboard.KeyCode.from_char('q'):
vlc_process.terminate()
return False
keyboard_listener = keyboard.Listener(on_press=on_press)
keyboard_thread = Thread(target=keyboard_listener.start)
keyboard_thread.start()
vlc_process.wait()
keyboard_listener.stop()