从cocoa应用程序控制iTunes

时间:2010-08-10 19:15:33

标签: cocoa macos itunes

我正在开发一个涉及音频播放的mac应用程序。 我想在播放开始时暂停其他音频播放器。

我该怎么办? 1)检测到itunes正在运行
2)检测到iTunes正在播放 3)暂停itunes
4)完成后恢复itunes

也:
5)是否也可以暂停其他类型的媒体播放?例如,在浏览器中的音频和视频?

3 个答案:

答案 0 :(得分:18)

您可以使用以下使用ScriptingBridge的代码执行此操作:

#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;
}

通过从命令行运行iTunes.h来生成文件sdef /Applications/iTunes.app | sdp -fh --basename iTunes。错误unknown type name "tdta"可以忽略。

您还需要将ScriptingBridge.framework添加到链接框架。

这里还有ScriptingBridge documentation的链接。

答案 1 :(得分:5)

  

1)检测到itunes正在运行

NSRunningApplicationProcess Manager

  

2)检测到iTunes正在播放   3)暂停itunes
  4)完成后恢复itunes

Scripting Bridge.

  

5)是否也可以暂停其他类型的媒体播放?

这取决于应用程序。

  例如,在浏览器中的音频和视频?

没有

答案 2 :(得分:2)

也许创建AppleScript可以解决问题?

检查出来:

http://dougscripts.com/itunes/

或某些命令行脚本?:

http://www.macosxhints.com/article.php?story=20011108211802830