我對 Python 有點陌生,我正在為連接運動傳感器的 Raspberry Pi 開發一個應用程式。這個想法是把這個樹莓放在一個房間里,然后在運動檢測時開始全屏播放視頻。視頻播放完畢后,我想讓設備休眠 10 分鐘,然后再次激活運動傳感器以再次播放相同的視頻。視頻結束后螢屏也應該保持黑色,因此不要退出 vlc 應用程式并查看 Raspberry Pi 桌面。
到目前為止,我嘗試了一些代碼,在一個檔案中全屏作業,而在另一個檔案中回圈作業,但是將 2 個檔案放在一起會給出錯誤。
正如我所說,我對編碼很陌生,所以問題可能非常愚蠢,解決方案非常簡單。在此先感謝您的幫助。在我的 2 個代碼檔案下方。
選項 1(全屏不作業)
from gpiozero import MotionSensor, LED
from time import sleep
import vlc
# creating Instance class object
player = vlc.Instance()
# creating a new media list
media_list = player.media_list_new()
# creating a media player object
media_player = player.media_list_player_new()
# creating a new media
media = player.media_new("/home/pi/MOSA25.mp4")
# adding media to media list
media_list.add_media(media)
# setting media list to the mediaplayer
media_player.set_media_list(media_list)
# setting loop
player.vlm_set_loop("1", True)
#fullscreen
#media_player.set_fullscreen(True)
#Motion Sensor
pir = MotionSensor(4)
#Led
led = LED(26)
led.off()
print("Sensor loading.")
pir.wait_for_no_motion()
sleep(5)
while True:
print("Ready")
pir.wait_for_motion()
print("Motion detected")
led.on()
sleep(5)
led.off()
media_player.play()
sleep(30)
選項 2(回圈不作業)
from gpiozero import MotionSensor, LED
from time import sleep
import vlc
# creating Instance class object
vlc_instance = vlc.Instance()
player = vlc_instance.media_player_new()
player.set_mrl("/home/pi/MOSA25.mp4")
player.set_fullscreen(True)
# setting loop
#player.vlm_set_loop("1", True)
#Motion Sensor
pir = MotionSensor(4)
#Led
led = LED(26)
led.off()
print("Sensor wordt geladen.")
pir.wait_for_no_motion()
sleep(5)
while True:
print("Ready")
pir.wait_for_motion()
print("Motion detected")
led.on()
sleep(5)
led.off()
player.play()
sleep(20)
uj5u.com熱心網友回復:
跟蹤在另一個while回圈中播放的視頻并在重新開始之前重新加載。
這是您的代碼(已調整,因為我沒有您的工具包)
from time import sleep
import vlc
playing = set([1,2,3,4])
# creating Instance class object
vlc_instance = vlc.Instance()
player = vlc_instance.media_player_new()
player.set_fullscreen(True)
#Motion Sensor
#pir = MotionSensor(4)
#Led
#led = LED(26)
#led.off()
print("Sensor wordt geladen.")
#pir.wait_for_no_motion()
sleep(5)
while True:
print("Ready")
# pir.wait_for_motion()
sleep(1)
print("Motion detected")
# led.on()
sleep(1)
# led.off()
player.set_mrl("/home/pi/MOSA25.mp4")
player.play()
sleep(1)
while player.get_state() in playing:
sleep(1)
continue
print("Finished")
sleep(5)
continue
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/452304.html
