如何从控制中心删除应用名称 - 音乐?

时间:2016-04-04 06:29:50

标签: ios objective-c iphone uiwebview mpmovieplayer

我正在开发一个应用程序(它不是音乐应用程序)但是,在某些时候,它可以在UIWebView(来自html 5文件)内播放音频,启用自动播放。

问题是,我的应用名称显示在iPhone“控制中心”的“音乐”部分中。当我点击我的应用名称时,它将打开我的应用程序。但是,我不想要这种行为。

我已尝试在[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = nil;内设置AppDelegate,当应用程序转到后台或进入前台甚至终止案例时。但它仍然显示应用程序名称?任何线索?有什么东西我不想设置吗?

哦,是的,这可能有助于某人知道确切的问题,在我正在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;
    }
}

对于备注,isSystemMediaPlayerPlayingBOOL类型。

截图:

enter image description here

  

P.S。而不是“你管”,你可以考虑“我的应用名称”。

3 个答案:

答案 0 :(得分:4)

你试过吗

[[UIApplication sharedApplication] endReceivingRemoteControlEvents];

答案 1 :(得分:3)

1 尝试设置defaultCenter的nowPlayingInfo字典,以便在UIWebView中加载内容后显示没有标题的媒体项。

MPNowPlayingInfoCenter *infoCenter = [MPNowPlayingInfoCenter defaultCenter];

NSDictionary *nowPlayingInfo = @{
                                 MPMediaItemPropertyTitle : @"",
                                 MPMediaItemPropertyArtist : @""
                                 };

[infoCenter setNowPlayingInfo:[NSDictionary dictionaryWithDictionary:nowPlayingInfo]];

2 使用背景音频时,请指定您的应用不应接收远程控制事件。

[[UIApplication sharedApplication] endReceivingRemoteControlEvents];

答案 2 :(得分:3)

请勿在您的应用中调用systemMusicPlayer。如果在进入你的应用程序时播放音乐,退出你的应用程序后,它将自行恢复,只需丢弃上面的代码。