2011-12-18 42 views
6

Có cách thêm hình ảnh vào màn hình khóa cho Âm thanh nền, cùng với cài đặt tên Bản nhạc và nghệ sĩ. Nó cũng đã được đề cập trong một video WWDC 2011, nhưng không có gì cụ thể để đi ra khỏi. Tôi đã nhìn khắp mọi nơi trong các tài liệu và không thể tìm thấy nó. Tôi biết đó là một thứ duy nhất trên iOS5 và phiên bản mới nhất của Spotify có tính năng này. Có ai biết nơi họ có thể chỉ cho tôi đi đúng hướng không?Âm thanh nền - Hình ảnh trên màn hình khóa

cảm ơn, Matthew

Trả lời

10

Dưới đây là một câu trả lời tôi đã tìm thấy cho bạn:

(1) Bạn phải xử lý sự kiện điều khiển từ xa. Bạn không thể là ứng dụng Now Playing trừ khi bạn làm vậy. (Xem AudioMixer (MixerHost) sample) code.)

(2) Thiết lập các thông tin Now Playing:

MPNowPlayingInfoCenter *infoCenter = [MPNowPlayingInfoCenter defaultCenter]; 
infoCenter.nowPlayingInfo = 
    [NSDictionary dictionaryWithObjectsAndKeys:@"my title", MPMediaItemPropertyTitle, 
               @"my artist", MPMediaItemPropertyArtist, 
               nil]; 

này không phụ thuộc vào bất cứ API bạn đang sử dụng để chơi video âm thanh hoặc .

+0

Tuyệt vời !!!!!!!!!!!! – Zhou

+0

Cảm ơn rất nhiều vì điều này. – jarryd

+0

Và làm thế nào để bạn đặt hình ảnh màn hình khóa? – openfrog

3

theo Michaels trả lời ở trên, chỉ cần nối

@{MPMediaItemPropertyArtwork: [[MPMediaItemArtwork alloc] initWithImage:[UIImage ...]]} 

để dict nowPlayingInfo

các tùy chọn đầy đủ các phím có sẵn là ...

// MPMediaItemPropertyAlbumTitle 
// MPMediaItemPropertyAlbumTrackCount 
// MPMediaItemPropertyAlbumTrackNumber 
// MPMediaItemPropertyArtist 
// MPMediaItemPropertyArtwork 
// MPMediaItemPropertyComposer 
// MPMediaItemPropertyDiscCount 
// MPMediaItemPropertyDiscNumber 
// MPMediaItemPropertyGenre 
// MPMediaItemPropertyPersistentID 
// MPMediaItemPropertyPlaybackDuration 
// MPMediaItemPropertyTitle 
1

Để thực hiện điều khiển việc ....

- (BOOL)canBecomeFirstResponder { 

return YES; 

} 

- (void)viewDidAppear:(BOOL)animated { 

[super viewDidAppear:animated]; 

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 

[self becomeFirstResponder]; 

} 

- (void)viewWillDisappear:(BOOL)animated { 

[[UIApplication sharedApplication] endReceivingRemoteControlEvents]; 

[self resignFirstResponder]; 

[super viewWillDisappear:animated]; 

} 

- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent { 

if (receivedEvent.type == UIEventTypeRemoteControl) { 

switch (receivedEvent.subtype) { 

case UIEventSubtypeRemoteControlPlay: 

[player play]; 

break; 

case UIEventSubtypeRemoteControlPause: 

[player pause]; 

break; 

case UIEventSubtypeRemoteControlTogglePlayPause: 

if (player.playbackState == MPMoviePlaybackStatePlaying) { 

[player pause]; 

} 

else { 

[player play]; 

} 

break; 

default: 

break; 

} 

} 

} 

Chỉ hoạt động trên thiết bị iOS thực, không hoạt động trên trình mô phỏng

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