2011-12-15 26 views
7

Trong iOS gần đây phiên bản ứng dụng có một số loại quyền truy cập vào các nút điều khiển đa phương tiện trên màn hình khóa, giống như nút Play/Pause:Làm cách nào để ứng dụng của tôi hoạt động với các nút điều khiển phương tiện trên màn hình khóa?

enter image description here

Dường như các nút có nghĩa vụ phải làm việc với các MPMusicPlayerController lớp học, phải không? Có cách nào để nhận sự kiện “thô” từ các nút không? Bởi vì trình phát nhạc dường như chỉ cung cấp API để cung cấp một loạt các MPMediaItem s. Điều gì xảy ra nếu ứng dụng của tôi chẳng hạn như một đài phát thanh cần xử lý các nút khác nhau?

Trả lời

8

Sau khi tìm kiếm thêm một chút, tôi đã tìm thấy điều này related question làm rõ mọi việc. Lớp trình điều khiển trình phát nhạc không thực sự đúng, mẹo là đăng ký các sự kiện từ xa trong bộ điều khiển của bạn:

- (void) viewDidAppear: (BOOL) animated 
{ 
    [super viewDidAppear:animated]; 
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
    [self becomeFirstResponder]; 
} 

- (BOOL) canBecomeFirstResponder 
{ 
    return YES; 
} 

- (void) remoteControlReceivedWithEvent: (UIEvent*) event 
{ 
    // see [event subtype] for details 
}