2010-08-10 82 views
13

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

我怎么能
1)检测iTunes是运行
2)检测iTunes是目前效力
3)暂停iTunes
4)恢复的iTunes时,我做了

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

回答

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

+0

什么是iTunesEPlSPlaying?有没有办法检测音频是否在快速播放? – quemeful 2016-05-17 21:40:13

+0

playerState是什么数据类型? – quemeful 2016-05-17 21:40:22

5

1)检测到的iTunes运行

NSRunningApplicationProcess Manager

2)检测iTunes是目前效力
3)暂停iTunes
4)恢复的iTunes时,我做了

Scripting Bridge.

5)是一种方法,暂停其他类型的媒体播放?

这取决于应用程序。

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

相关问题