对于我的一个项目,我需要一种创建自定义媒体播放器类的方法。为此,我创建了一个简单的类,该类使用给定的 url 调用 omxplayer 并写入标准输入字母,例如“p”暂停,“q”退出......等等这是我的代码
import subprocess
import time
class MediaPlayer():
def __init__(self):
self.url = None
self.process = None
def play(self, url):
self.url = url
self.process = subprocess.Popen(['omxplayer', '-o', 'local', self.url], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
def stop(self):
self.process.stdin.write('q'.encode())
def toogle_pause(self):
self.process.stdin.write(b'p')
url = "/home/pi/Desktop/IOS MIRROR/films/Game.of.Thrones.S01E02.HDTV.VF.avi"
print('start')
media_player = MediaPlayer()
media_player.play(url)
time.sleep(15)
print('pause')
media_player.toogle_pause()
time.sleep(2)
print('resume')
media_player.toogle_pause()
time.sleep(10)
print('stop')
media_player.stop()
当我执行命令时,这在 python2.7 上工作得很好
python omx.py
但是一旦我执行命令
python3 omx.py
我的写行都不起作用,视频播放但不会暂停和停止。没有打印错误,所以我真的被卡住了。有关信息,我使用的是由 Raspbian 提供支持的 Raspberry Pi 3。我需要它在 python3 上工作,因为我的 Mirror 项目正在使用 Python3
谢谢大家的回答!最好的问候,朱利安