2010-08-10 83 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)是一種方法,暫停其他類型的媒體播放?

這取決於應用程序。

音頻和視頻在瀏覽器中的例子?

相關問題