Ответ 1
Я, наконец, выяснил проблему, я не предлагал моему приложению получать события дистанционного управления, просто добавив эту строку, исправил проблему:
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
Я работаю над обновлением MPNowPlayingInfoCenter и имею немного проблем. Я пробовал совсем немного до такой степени, что я в недоумении. Ниже приведен мой код:
self.audioPlayer.allowsAirPlay = NO;
Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
if (playingInfoCenter) {
NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init];
MPMediaItemArtwork *albumArt = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"series_placeholder"]];
[songInfo setObject:thePodcast.title forKey:MPMediaItemPropertyTitle];
[songInfo setObject:thePodcast.author forKey:MPMediaItemPropertyArtist];
[songInfo setObject:@"NCC" forKey:MPMediaItemPropertyAlbumTitle];
[songInfo setObject:albumArt forKey:MPMediaItemPropertyArtwork];
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo];
}
Это не работает, я также пробовал:
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:nil];
В попытке заставить его удалить существующую информацию из приложения iPod (или что-то там, где может быть информация). Кроме того, просто чтобы узнать, могу ли я выяснить проблему, я попытался получить текущую информацию о запуске приложения:
NSDictionary *info = [[MPNowPlayingInfoCenter defaultCenter] nowPlayingInfo];
NSString *title = [info valueForKey:MPMediaItemPropertyTitle];
NSString *author = [info valueForKey:MPMediaItemPropertyArtist];
NSLog(@"Currently playing: %@ // %@", title, author);
и я получаю Currently playing: (null) // (null)
Я исследовал это совсем немного, и следующие статьи объясняют это довольно подробно, однако я все еще не могу заставить это работать должным образом. Я что-то упускаю? Будет ли что-нибудь вмешиваться в это? Является ли это услугой, которую мое приложение должно регистрировать для доступа (не видели это в каких-либо документах)?
Изменить фоновый контроль звука фона экрана блокировки
Теперь игнорируется игра с информацией
Я, наконец, выяснил проблему, я не предлагал моему приложению получать события дистанционного управления, просто добавив эту строку, исправил проблему:
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
Я использую приведенный ниже код и всегда работает. Я также использую MPMoviePlayer
, как вы. Вы проверили, действительно ли NSClassFromString(@"MPNowPlayingInfoCenter")
возвращает YES
? Установили ли вы приложение для воспроизведения звука в фоновом режиме в вашем plist?
- (void) loadMPInformation
{
NSDictionary *mpInfo;
if([savedTrack.belongingAlbum.hasAlbumArt boolValue] == NO){
mpInfo = [NSDictionary dictionaryWithObjectsAndKeys:savedTrack.belongingAlbum.album, MPMediaItemPropertyAlbumTitle,
savedTrack.belongingArtist.artist, MPMediaItemPropertyArtist, savedTrack.name, MPMediaItemPropertyTitle, nil];
} else {
UIImage *artImage = [UIImage imageWithData:savedTrack.belongingAlbum.art];
MPMediaItemArtwork *artwork = [[MPMediaItemArtwork alloc] initWithImage:artImage];
mpInfo = [NSDictionary dictionaryWithObjectsAndKeys:savedTrack.belongingAlbum.album, MPMediaItemPropertyAlbumTitle,
savedTrack.belongingArtist.artist, MPMediaItemPropertyArtist, savedTrack.name, MPMediaItemPropertyTitle, artwork, MPMediaItemPropertyArtwork, nil];
}
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = mpInfo;
}