gpt4 book ai didi

Python 子进程 - mps-Youtube

转载 作者:行者123 更新时间:2023-12-03 05:35:56 25 4
gpt4 key购买 nike

我目前正在做一个小项目,该项目将接收语音命令,就像你在亚马逊 echo for spotify 中所做的那样,在 Raspberry Pi 上用于 YouTube。本质上,我叫出歌曲或艺术家,脚本将运行第一个结果(现在)。

我用于将 Youtube 视频流式传输回音频的库是 mps-Youtube,我为它完成了 bash 自动化,如下所示:

(echo -e "$1"; echo -e "1") | mpsyt 

第一个参数是歌曲查询,第二个参数是选择第一个结果。

我遇到的问题是,到目前为止,我可以使用 subprocess 在 Python 中运行它。模块,到目前为止看起来像这样(在 python shell 中测试):

cmd = "/home/pi/bash/play_youtube_song.sh '为恐惧流泪'"
ps = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
输出 = ps.communicate()[0]
打印输出

然而,脚本只是打印返回码 0 ,并且程序似乎没有完全执行。

我能做些什么来确保 python 完全运行脚本吗?
我尝试使用 & 在后台运行它在 bash 中,但它似乎也不起作用,歌曲无法播放。

提前致谢。

最佳答案

解决了!

所以默认情况下子进程使用/bin/sh,所以有一个参数可以让你将可执行文件更改为/bin/bash。

我在 sh 中运行 bash 时发现了这一点。 ,并且它并没有将所有参数都回显到 mps-youtube 中,而在 gnome-terminal 中却实现了这一点。

信用:https://www.saltycrane.com/blog/2011/04/how-use-bash-shell-python-subprocess-instead-binsh/

关于Python 子进程 - mps-Youtube,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44638889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com