omxplayer和omxplayerd.py - 这个脚本有什么问题?

0 投票
1 回答
1012 浏览
提问于 2025-04-18 11:35

我一直在尝试在我的Debian Wheezy Raspberry Pi上运行这个小程序,但遇到了一些麻烦。

我想创建一个简单易用的视频播放界面,这个程序看起来很合适,但视频文件可以播放,却无法暂停、停止、快进等等。

我觉得问题可能出在这里:

def omx_send(data):
    subprocess.Popen('echo -n '+data+' >'+re.escape(OMXIN_FILE),shell=True)
    return 1

还有启动视频播放器omxplayer的那部分。我感觉这可能和处理stdoutstdin不正确有关,但如我所说,我并不太确定。

def omx_play(file):
    #omx_send('q')
    #time.sleep(0.5) #Possibly unneeded - crashing fixed by other means.
    subprocess.Popen('killall omxplayer.bin',stdout=subprocess.PIPE,shell=True)
    subprocess.Popen('clear',stdout=subprocess.PIPE,shell=True)
    subprocess.Popen('omxplayer -o hdmi '+os.path.join(MEDIA_RDIR,re.escape(file))+' <'+re.escape(OMXIN_FILE),shell=True)
    omx_send('.')
    return 1

我对Python了解不够,搞不清楚发生了什么。

就我所见,数据是正确传递给omx_send的,当按下某个无法工作的按钮(比如暂停)时,终端会显示这个信息:

"HTTP/1.1 GET /pause" - 200 OK

有没有什么建议可以帮我解决这个问题?我只需要这些小按钮能正常工作,这样就能成为一款完美的易用软件了。

谢谢。

1 个回答

0

你可以使用随 omxplayer 一起提供的基于 DBUS 的 shell 脚本。

https://github.com/popcornmix/omxplayer/blob/master/dbuscontrol.sh

撰写回答