所以我不是一个Python开发者,我拼凑了一些有用的东西,但不是像我想的那样。让我来描述一下我 * 想要 * 什么:
在一台古董电视上,我想让圆周率播放连续的随机视频。如果按下一个按钮,我想换成一个新的随机视频,并继续播放随机视频,除非按下另一个按钮。
简单地说,Python代码应该播放随机视频--如果按下一个按钮,就会启动一个不同的随机视频,然后播放更多的随机视频。
背景,我有一个奇妙的恢复1946 Philco Predicta电视,并试图使它在2 o2o更有用.我有我的视频文件夹充满了正确的时期视频和广告...这将是伟大的,当我得到我的代码更好.
这是我目前拼凑出来的。它现在做的是...当我 Boot 系统时,它播放一个随机视频。然后,当按下一个按钮时,它播放随机视频。谁能帮助我更像我想要的那样做吗?
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import os
import random
buttonPin = 21
directory = "/home/pi/Videos/"
GPIO.setmode(GPIO.BCM)
GPIO.setup(buttonPin, GPIO.IN)
def playEpisode():
episode = random.choice(os.listdir(directory))
cmd = "nohup omxplayer --aspect-mode stretch "+"'"+directory+episode+"' &"
# cmd = "nohup omxplayer -o alsa --aspect-mode stretch "+"'"+directory+episode+"' &"
# the above w/ added -o alsa for bluetooth speakers fails after the first video. because of how i kill omxplayer? or nohup? further investigation needed.
print('Killing all omxplayer processes . . .')
os.system('killall omxplayer.bin')
os.system(cmd)
try:
# os.system('clear')
#added below to see if it will play random UNTIL button press...
playEpisode()
print('Waiting for button press . . .')
GPIO.wait_for_edge(buttonPin, GPIO.FALLING)
print('[x] Recieved button press.')
print('Playing random video . . .')
playEpisode()
#point to location of this file
os.system('sudo python /home/pi/predicta.py')
except KeyboardInterrupt:
os.system('killall omxplayer.bin')
GPIO.cleanup()
1条答案
按热度按时间ssm49v7z1#
我更新了我的代码一点...这个在运行时启动一个随机视频,然后将后藤一个新的随机视频,如果按钮被按下-并将播放一个新的随机视频,如果按钮被按下后,一个随机视频停止...
但我还是想测试omxplayer是否在运行或停止--如果omxplayer停止播放当前的视频,就播放另一个随机视频。
后来,我想在每第三个视频后添加一个广告-但现在不需要。