从cocoa应用程序控制iTunes

Raz*_*Raz 13 macos cocoa itunes

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

我怎样才能
1)检测到itunes正在运行
2)检测到iTunes正在播放
3)暂停itunes
4)当我完成时恢复itunes

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

MKr*_*ert 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;
}
Run Code Online (Sandbox Code Playgroud)

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

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

这里还有一个指向ScriptingBridge文档的链接.


Pet*_*sey 5

1)检测到itunes正在运行

NSRunningApplicationProcess Manager.

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

脚本桥.

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

这取决于应用程序.

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

没有.