我正在开发一个涉及音频播放的Mac应用程序。 当我们的播放开始时,我希望暂停其他音频播放器。
如何实现:
1) 检测iTunes是否在运行
2) 检测iTunes当前是否正在播放
3) 暂停iTunes
4) 当完成后恢复iTunes
另外:
5) 是否有方法暂停其他类型的媒体播放?例如浏览器中的音频和视频?
#import "iTunes.h"
#import "Cocoa/Cocoa.h"
int main()
{
iTunesApplication* iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
// check if iTunes is running (Q1)
if ([iTunes isRunning])
{
// pause iTunes if it is currently playing (Q2 and Q3)
if (iTunesEPlSPlaying == [iTunes playerState])
[iTunes playpause];
// do your stuff
// start playing again (Q4)
[iTunes playpause];
}
return 0;
}
运行命令 sdef /Applications/iTunes.app | sdp -fh --basename iTunes
可以生成文件 iTunes.h
。 如果出现错误 unknown type name "tdta"
,可以忽略。
您还需要将 ScriptingBridge.framework 添加到链接的框架中。
这里还有一个 ScriptingBridge 文档链接 。
1) 检测 iTunes 是否正在运行
可以使用 NSRunningApplication 或者 Process Manager。
2) 检测 iTunes 是否正在播放
3) 暂停 iTunes
4) 在完成后恢复 iTunes
可以使用 Scripting Bridge。
5) 还有其他媒体播放方式可以暂停吗?
这取决于应用程序。
例如浏览器中的音频和视频?
不行。
http://dougscripts.com/itunes/
或者一些命令行脚本?http://www.macosxhints.com/article.php?story=20011108211802830