我创建了一个小的音频播放器,可以在我指定的网站上查找有声读物的一章,下载并播放。唯一的问题是,我不能停下来。要播放我使用的mp3文件os.system("afplay chapter.mp3")
我曾考虑过创建一个包含os.system
调用的线程,但我很确定不能这样暂停它。如果线程是一个循环,我可以锁定它需要访问的变量,然后在我准备继续时解锁它。但由于这个线程只是一行代码,所以看起来不太可能。我还研究了如何创建一个进程并将SIGSTOP
发送给它。但不知为什么这行不通。在
import os, signal
from multiprocessing import Process
p = Process(target=play)
p.start()
raw_input("press enter to pause: ")
os.kill(p.pid, signal.SIGSTOP)
代码只是默默地执行而不停止进程。在
我知道除了afplay还有其他的选择,但现在我只想坚持操作系统打电话。所以我的问题是,如何暂停一行线程或进程?我不需要用process()调用创建一个新进程,而是需要找到afplay的进程id吗?如果是,怎么办?在
os.system
创建子进程并等待该子进程退出。您可以使用^{为什么不直接使用subprocess模块而不是subprocess和操作系统?这样可以更好地控制派生的进程。在
相关问题 更多 >
编程相关推荐