Ответ 1
Не вызывайте systemMusicPlayer в своем приложении. если музыка появляется при входе в приложение, после выхода из приложения она возобновится сама по себе, просто отбросьте свой код выше.
Я работаю над приложением (которое не является музыкальным приложением), однако в какой-то момент он может воспроизводить звук внутри UIWebView
(из файла html 5), который включал автовоспроизведение.
Проблема в том, что мое имя приложения отображается в iPhone Control Center внутри раздела "Музыка". Когда я нажму имя своего приложения, он откроет мое приложение. Однако я не хочу этого поведения.
Я попытался установить [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = nil;
внутри AppDelegate
s, когда приложение переходит в фоновый режим или выходит на передний план или даже заканчивает работу. Но все еще появляется название приложения? Любая подсказка? Есть что-то, что мне не хватает, чтобы установить?
О, и да, это может помочь кому-то узнать точную проблему, в контроллере представления, где я воспроизвожу аудио внутри UIWebView
, я написал следующий код для обработки текущей песни в моей музыке iPhone (или любой другой ) приложение.
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
MPMusicPlayerController *mp = [MPMusicPlayerController systemMusicPlayer];
if(mp.playbackState == MPMoviePlaybackStatePlaying) {
isSystemMediaPlayerPlaying = YES;
}
}
- (void) viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if(isSystemMediaPlayerPlaying) {
MPMusicPlayerController *mp = [MPMusicPlayerController systemMusicPlayer];
[mp play];
isSystemMediaPlayerPlaying = NO;
}
}
Примечание. isSystemMediaPlayerPlaying
- это тип BOOL
.
Скриншот:
P.S. Вместо "You Tube" вы можете рассмотреть "My App Name".
Не вызывайте systemMusicPlayer в своем приложении. если музыка появляется при входе в приложение, после выхода из приложения она возобновится сама по себе, просто отбросьте свой код выше.
Вы пробовали
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
1 Попробуйте настроить словарь DefaultCenter nowPlayingInfo, чтобы отобразить мультимедийный элемент без заголовка сразу после загрузки содержимого в UIWebView.
MPNowPlayingInfoCenter *infoCenter = [MPNowPlayingInfoCenter defaultCenter];
NSDictionary *nowPlayingInfo = @{
MPMediaItemPropertyTitle : @"",
MPMediaItemPropertyArtist : @""
};
[infoCenter setNowPlayingInfo:[NSDictionary dictionaryWithDictionary:nowPlayingInfo]];
2 При использовании фонового звука укажите, что ваше приложение не должно получать события дистанционного управления.
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];