python - 几秒钟后 Subprocess.Popen 停止(或出现故障)

标签 python raspberry-pi subprocess raspbian mplayer

我是一个完全的初学者,如果有任何错误,我深表歉意。这是我在 Python 3.5 中的代码。它在 Raspberry Pi 3 上以 Raspbian 执行。

import subprocess

radio = subprocess.Popen(["mplayer", 'http://edge-bauerabsolute-02-gos1.sharp-stream.com/absolute90s.mp3?'], shell = False , stdout=subprocess.PIPE)

print ("Other code - no waiting for the subprocess to finish")

radio 播放了大约 30 秒,然后停止。我希望它在后台运行而无需脚本等待子进程结束。此外,在 Linux 中,如果我停止脚本, radio 会作为 mplayer 的运行进程再次返回(所以 python 脚本必须以某种方式停止它?)

似乎子进程继续但音乐/声音停止了。它似乎与互联网连接无关,如果我等待它也不会再次启动。我试过做 radio.communicate() 或 radio.stdout.read() 这足够有趣让我的 radio 连续播放,但不会继续脚本。我没有任何输出,脚本只是保留。

问题:如何在脚本执行其他操作时让“广播”进程在后台继续(同时播放音乐)?

最佳答案

幸好我自己解决了。 subprocess.PIPE 显然停止/干扰了进程,所以我没有像这样执行 DEVNULL 而不是 stdout=subprocess.PIPE :

DEVNULL = open(os.devnull, 'wb')
radiostream = subprocess.Popen(["mplayer", 'http://edge-bauerabsolute-02-gos1.sharp-stream.com/absolute90s.mp3?&'], shell = False, stdout=DEVNULL, stderr=DEVNULL)

关于python - 几秒钟后 Subprocess.Popen 停止(或出现故障),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52297000/

相关文章:

python - 使用单选小部件从模型选择字段中删除 "---------"

python - 如何在 Django 模板中组合查询集和字典?

python - 尝试连接外部 MySQL 数据库时卡在连接器上。连接

c# - Windows IoT Web 浏览器

python - 如何重启flask服务器?

python - 在 Python 中传递参数化函数句柄

python - Django 模型表单未正确提交

python - 我需要什么代码才能将我的 raspberry pi 中的 csv 文件写入本地网络中的文件夹?

python - 如何在另一个目录中运行python脚本,而不将脚本写入磁盘?

python - 在 python 中使用 subprocess.run 以管理员身份运行进程