Управление iTunes из приложения cocoa

Я разрабатываю приложение для Mac, которое включает воспроизведение аудио. Я хочу приостановить воспроизведение других аудиоплееров, когда начнется воспроизведение.

как я могу 1) обнаружит, что itunes запущен
2) обнаружите, что itunes в настоящее время играет
3) пауза itunes
4) возобновить itunes, когда я закончил

также:
5) Является ли способ приостановить воспроизведение других типов мультимедиа? аудио и видео в браузере, например?

Ответы

Ответ 1

Вы можете сделать это со следующим кодом, который использует 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.

Ответ 2

1) обнаруживает, что itunes работает

NSRunningApplication или Process Manager.

2) обнаруживают, что itunes в данный момент воспроизводится
3) пауза itunes
4) возобновить itunes, когда я закончил

Скриптовый мост.

5) Можно ли приостановить воспроизведение других типов мультимедиа?

Это зависит от приложения.

аудио и видео в браузере, например?

Нет.