MPRemoteCommandCenter отключил все элементы управления - PullRequest
0 голосов
/ 03 мая 2019

Здравствуйте, дорогие коллеги, мне нужна ваша помощь. Когда я добавляю MPChangePlaybackPositionCommand, все мои элементы управления (воспроизведение / пауза / перемотка назад / следующий трек на экране блокировки) автоматически отключаются. Ползунок воспроизведения на экране блокировки работает отлично, но я не могу нажать ни одну кнопку управления, почему - я не знаю.

Также я попробовал это:

[[MPRemoteCommandCenter sharedCommandCenter].playCommand setEnabled:YES];
[[MPRemoteCommandCenter sharedCommandCenter].pauseCommand setEnabled:YES];
[[MPRemoteCommandCenter sharedCommandCenter].previousTrackCommand setEnabled:YES];
[[MPRemoteCommandCenter sharedCommandCenter].nextTrackCommand setEnabled:YES]; 

Мой код очень прост:

 MPChangePlaybackPositionCommand *changePlaybackPositionCommand = [[MPRemoteCommandCenter sharedCommandCenter] changePlaybackPositionCommand];
    [changePlaybackPositionCommand addTarget:self action:@selector(onChangePlaybackPositionCommand:)];

- (MPRemoteCommandHandlerStatus) onChangePlaybackPositionCommand:
(MPChangePlaybackPositionCommandEvent *) event

{
    [[[PlayerPlistController utilise]miniplayer] seekToTime:CMTimeMakeWithSeconds(event.positionTime, 1)];

    NSLog(@"changePlaybackPosition to %f", event.positionTime);

    return MPRemoteCommandHandlerStatusSuccess;
}

NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init];

[songInfo setObject:NAME_TITLE forKey:MPMediaItemPropertyTitle];
[songInfo setObject:NAME_TITLE_SLOGON forKey:MPMediaItemPropertyAlbumTitle];

UIImage *image = [UIImage imageNamed:PLACEHOLDER_EMPTY];
MPMediaItemArtwork *imageArt =  [[MPMediaItemArtwork alloc] initWithBoundsSize:image.size requestHandler:^UIImage* _Nonnull(CGSize aSize) { return image; }];

[songInfo setObject:imageArt forKey:MPMediaItemPropertyArtwork];
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo];

enter image description here

1 Ответ

1 голос
/ 03 мая 2019

Давайте возьмем кнопку воспроизведения / паузы в качестве примера. Недостаточно включить это. Вы также должны реализовать это (я извиняюсь за написание на Swift; мне лень переводить обратно в Objective-C, но вы наверняка можете понять смысл):

let mprc = MPRemoteCommandCenter.shared()
mprc.playCommand.addTarget(self, action:#selector(doPlay))
mprc.pauseCommand.addTarget(self, action:#selector(doPause))

и т. Д., А также фактические реализации doPlay и doPause.

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