嵌入python时的Applescript输出阅读问题

时间:2019-06-21 07:17:17

标签: python applescript

我正在尝试制作一个可在MacOS上与iTunes配合使用并根据播放器当前是否在播放而变化的python应用程序。我有一个AppleScript,它通过一个布尔值来传递它是否正在播放,但是当我尝试使用python读取它时,它无法与python一起使用。与字符串相同。

我尝试更改为使用字符串,但这也不起作用。

def Update(self):
        osascript.run(self.applescript, background=True)
        self.proc = Popen(['osascript', '-'], stdin=PIPE, stdout=PIPE, stderr=PIPE, universal_newlines=True)
        self.appscripPlayingOutput, error = self.proc.communicate(self.applescriptIsPlaying)
        print(self.appscripPlayingOutput)
        self.boolisPlay = self.str2bool(self.appscripPlayingOutput)
        print(self.boolisPlay)
        if self.boolisPlay == False:
            self.playing = False
            print("is paused")
        else:
            self.playing = True
            print("is playing")
        self.musicImage = Image.open(self.pathToAlbumArt)
        self.musicImage = self.musicImage.resize((300,300), Image.ANTIALIAS)
        self.realMusicImage = ImageTk.PhotoImage(self.musicImage)
        self.musicCanvas.itemconfigure(self.AlbumArtId, image=self.realMusicImage)
        root.after(1000, self.Update)

我希望它在播放时为true,在暂停时为false,但始终返回true

1 个答案:

答案 0 :(得分:0)

我通过改为使applescirpt返回true(真)和0(false),然后使用python将其转换为int来解决了这个问题