我正在尝试编写一个自动存储塔代码,允许运行Raspbian的Raspberry Pi启动到终端并运行我的脚本而不是启动到桌面。 Pi将在没有屏幕的盲模式下运行,仅显示4位7段显示器上矩阵键盘的键入数字。
当我从桌面编写和测试代码并在IDLE中运行我的程序时,它工作得很好。它会提示输入2位数的光盘编号,然后输入2位数的轨道编号。然后它向终端发送命令以使用VLC的“虚拟模式”来播放mp3。这不是直接来自我的程序,但它将显示基本功能:
import os
# The script asks for user input to ask for the disc and track number
discNum="01"
trackNum="01"
# With the variable values above, this sends a command to terminal to
# play Disc 01, Track 01 in the background
songSelection="cvlc /home/pi/JukeMP3/"+discNum+"/"+trackNum+"*.mp3 &"
os.system(songSelection)
这适用于桌面。我在循环上输入脚本以接受输入,使用“killall vlc”命令停止当前播放曲目,然后启动所选曲目。使用cvlc将VLC播放器置于虚拟模式(无窗口)和“&”在命令结束时允许程序在歌曲开始播放后继续运行。
问题在于,当我设置我的脚本在启动时运行并且它在终端而不是IDLE窗口中运行时,VLC播放器输出有关播放轨道的一些信息并锁定提示,停止程序继续。而不是将所请求的命令放入后台“&”似乎没什么区别。
有没有办法让VLC在后台工作而不控制终端,这样我的程序可以继续?