Управление 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) Можно ли приостановить воспроизведение других типов мультимедиа?
Это зависит от приложения.
аудио и видео в браузере, например?
Нет.
Ответ 3
Возможно, создание AppleScript может решить проблему?
Проверьте это:
http://dougscripts.com/itunes/
или некоторые скрипты командной строки?:
http://www.macosxhints.com/article.php?story=20011108211802830