Фоновое аудио - изображение на экране блокировки - PullRequest
6 голосов
/ 19 декабря 2011

Существует способ добавить изображение на экран блокировки для фонового звука, а также установить название дорожки и исполнителя. Это было также упомянуто в видео WWDC 2011, но ничего конкретного из этого не вышло. Я посмотрел всюду в документах и ​​не могу найти его. Я знаю, что это только iOS5, и в новейшей версии Spotify есть эта функция. Кто-нибудь знает, где они могут указать мне правильное направление?

Спасибо, Мэтью

Ответы [ 3 ]

10 голосов
/ 19 декабря 2011

Вот ответ, который я нашел для вас:

(1) Вы должны обрабатывать события дистанционного управления. Вы не можете быть сейчас Воспроизведение приложения, если вы не делаете. (См. Пример AudioMixer (MixerHost)) .)

(2) Установите информацию о текущем воспроизведении:

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

Это не зависит от того, какой API вы используете для воспроизведения аудио или видео.

3 голосов
/ 10 января 2014

согласно ответу Майклса выше, просто добавьте

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

на текущий момент воспроизведенияИнфо

полный набор доступных ключей ...

// MPMediaItemPropertyAlbumTitle
// MPMediaItemPropertyAlbumTrackCount
// MPMediaItemPropertyAlbumTrackNumber
// MPMediaItemPropertyArtist
// MPMediaItemPropertyArtwork
// MPMediaItemPropertyComposer
// MPMediaItemPropertyDiscCount
// MPMediaItemPropertyDiscNumber
// MPMediaItemPropertyGenre
// MPMediaItemPropertyPersistentID
// MPMediaItemPropertyPlaybackDuration
// MPMediaItemPropertyTitle
1 голос
/ 02 января 2015

Чтобы заставить работать элементы управления ....

- (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;

}

}

}

Работает только на реальном устройстве iOS, а не на симуляторе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...