2010-08-10 4 views
13

Pracuję nad aplikacją mac, która wymaga odtwarzania dźwięku. Chciałbym zatrzymać inne odtwarzacze audio po rozpoczęciu odtwarzania.Sterowanie aplikacją iTunes za pomocą kakao

jak mogę
1) wykrywa, że ​​iTunes jest uruchomiony
2) wykrywa, że ​​iTunes jest aktualnie graczem
3) wstrzymać iTunes
4) wznowić itunes kiedy mam zrobić

również:
5) Czy można również wstrzymać inne rodzaje odtwarzania multimediów? audio i wideo na przykład w przeglądarce?

Odpowiedz

18

Można to zrobić za pomocą następującego kodu, który korzysta 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; 
} 

Plik iTunes.h są generowane przez uruchomienie sdef /Applications/iTunes.app | sdp -fh --basename iTunes z polecenia. Błąd unknown type name "tdta" można zignorować.

Należy również dodać skrypt ScriptBridge.framework do połączonych struktur.

Tutaj jest również link do ScriptingBridge documentation.

+0

co to jest iTunesEPlSPlaying? i czy istnieje sposób na wykrycie, czy audio gra z szybkim? – quemeful

+0

jaki jest typ danych playerState? – quemeful

5

1) wykrywają, że iTunes jest uruchomiony

NSRunningApplication lub Process Manager.

2) wykrywa, że ​​iTunes jest aktualnie graczem
3) wstrzymać itunes
4) wznowić itunes kiedy mam zrobić

Scripting Bridge.

5) Czy to sposób na wstrzymać także inne rodzaje odtwarzania multimediów?

To zależy od zastosowania.

audio i wideo na przykład w przeglądarce?

nr