2010-08-10 27 views
13

Tôi đang phát triển một ứng dụng mac có liên quan đến phát lại âm thanh. Tôi muốn tạm dừng các trình phát âm thanh khác khi quá trình phát lại của chúng tôi bắt đầu.Kiểm soát iTunes từ ứng dụng ca cao

làm thế nào tôi có thể
1) phát hiện rằng itunes đang chạy
2) phát hiện rằng itunes hiện đang chơi
3) tạm dừng itunes
4) tiếp tục itunes khi tôi đang làm

thêm:
5) Có phải cách để tạm dừng các loại phát lại phương tiện khác không? âm thanh và video trong trình duyệt chẳng hạn?

Trả lời

18

Bạn có thể làm điều đó với đoạn mã sau đó là sử dụng 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; 
} 

File iTunes.h được tạo ra bằng cách chạy sdef /Applications/iTunes.app | sdp -fh --basename iTunes từ một dòng lệnh. Lỗi unknown type name "tdta" có thể bỏ qua.

Bạn cũng cần thêm ScriptingBridge.framework vào khung công tác được liên kết.

Đây cũng là liên kết đến số ScriptingBridge documentation.

+0

iTunesEPlSPlaying là gì? và có cách nào để phát hiện xem âm thanh có đang phát nhanh không? – quemeful

+0

loại dữ liệu nào là playerState? – quemeful

5

1) phát hiện rằng itunes đang chạy

NSRunningApplication hoặc Process Manager.

2) phát hiện rằng itunes hiện đang chơi
3) tạm dừng itunes
4) tiếp tục itunes khi tôi đang làm

Scripting Bridge.

5) Là một cách để tạm dừng các loại phát lại phương tiện khác?

Điều đó tùy thuộc vào ứng dụng.

âm thanh và video trong trình duyệt chẳng hạn?

số

Các vấn đề liên quan