我想使用iTunes在MacOSX上呈现http mp3流。我理解以编程方式远程控制iTunes的最佳方法是AppleScript,我已经可以启动iTunes了,但是:
答案 0 :(得分:2)
找到了解决方案:
tell application "itunes" to open location "your_url_here"
tell application "itunes" to play
它会明显打开iTunes,但至少它已经被最小化了。
顺便说一句,我是用Java运行的(我相信这需要Snow Leopard):
new ScriptEngineManager().getEngineByName("AppleScript").eval("tell application ...");
答案 1 :(得分:2)
在iTunes未运行时发送命令将导致它启动并显示其默认GUI;没有简单的方法。
但是如果你想强制iTunes隐藏,而不是隐藏它,如果它还不可见,你可以这样做:
tell application "iTunes"
open location "your_url_here"
play
set visible of every window to false
end tell
或者,如果您只想在脚本启动iTunes时隐藏iTunes,则可以执行以下操作:
tell application "System Events"
set iTunesWasRunning to count of (processes whose name is "iTunes")
end tell
tell application "iTunes"
open location "your_url_here"
play
if iTunesWasRunning is 0 then set visible of every window to false
end tell
当然有一些它无法处理的边缘情况(例如,如果iTunes正在运行,但浏览器窗口已经最小化,您将使其无法最小化,并且不会重新最小化它);查看iTunes和系统事件词典,并试验您关心的每个边缘案例。此外,还有一个小的竞争条件(如果用户或其他脚本在您的检查后恰好启动它...),但是您无能为力。
除了在某些不常见的情况下(例如,iTunes已在流中暂停),您实际上并不需要“播放”,但它并没有受到伤害。
最后,默认情况下,每次运行时,都会将“your_url_here”添加到名为“Internet Songs”的播放列表中,即使它已经存在,也可以根据需要创建播放列表。希望你不介意;如果你这样做,还有更多的技巧需要学习。
答案 2 :(得分:0)
或者你可以像这里回答的那样使用QuickTime Player。打开相同的文件,预先安装,并且可以强制使用几乎没有可见的GUI。如果你希望另一个流在一个完成时启动它会变得更复杂。
play a stream in iTunes without adding it to the library / playlist