Управляйте iTunes из приложения какао - PullRequest
13 голосов
/ 10 августа 2010

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

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

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

Ответы [ 3 ]

18 голосов
/ 02 сентября 2010

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

5 голосов
/ 11 августа 2010

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

NSRunningApplication или Диспетчер процессов .

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

Мост сценариев.

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

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

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

номер

2 голосов
/ 10 августа 2010

Может быть, создание AppleScript может решить проблему?

Проверьте это:

http://dougscripts.com/itunes/

или некоторые сценарии командной строки?:

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

...