applicationMusicPlayer音量通知

我正在使用applicationMusicPlayer,当我尝试更改音量时出现可视通知,如图所示。 这里我正在使用的代码:

[MPMusicPlayerController applicationMusicPlayer] setVolume:newVolune]; 

任何人都知道如何隐藏这个通知?

在这里输入图像说明

我不知道文档所在的位置,但是如果将MPVolumeView视图添加到您的应用程序,则系统音量叠加层将消失。 即使它不可见:

 - (void) viewDidLoad { [super viewDidLoad]; MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame: CGRectZero]; [self.view addSubview: volumeView]; [volumeView release]; ... } 

您可以使用硬件音量button, setVolume方法或直接与控件(如果可见)进行交互,而不会显示叠加层。

对于iOS6,我不得不将alpha 0和非零大小的图像设置到MPVolumeView的图像域,以使默认音量更改通知消失。

 // hide the hardware volume slider UIImage *thumb = [[UIImage alloc] initWithCIImage:[UIImage imageNamed:@"volumeHider"].CIImage scale:0.0 orientation:UIImageOrientationUp]; MPVolumeView *hwVolume = [[MPVolumeView alloc] initWithFrame:self.frame]; [hwVolume setUserInteractionEnabled:NO]; hwVolume.showsRouteButton = NO; [hwVolume setVolumeThumbImage:thumb forState:UIControlStateNormal]; [hwVolume setMinimumVolumeSliderImage:thumb forState:UIControlStateNormal]; [hwVolume setMaximumVolumeSliderImage:thumb forState:UIControlStateNormal]; [self addSubview:hwVolume]; 

这使得MPVolumeView在屏幕上“可见”,但对用户不可见。

我最近遇到了同样的问题。 将MPVolumeView添加到当前视图控制器的视图中,而不是将其添加到应用程序的窗口,在应用程序的开始处:

 CGRect rect = CGRectMake(-500, -500, 0, 0); MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:rect]; [self.window addSubview:volumeView]; 

这适用于iOS 7和8。

我在iOS 6中获得了成功。虽然它不会很好。 滑动thumbImage时,会导致相当多的延迟。 我不得不拿出最后两行代码才能工作。

 [volumeView release]; ... 

对于我来说,在iOS 7上,上述解决scheme都不起作用。 我是这样做的:

 _volume = [[MPVolumeView alloc] initWithFrame: CGRectMake(-100,-100,16,16)]; _volume.showsRouteButton = NO; _volume.userInteractionEnabled = NO; [self.view addSubview:_volume]; [_volume release]; 

也就是说,只需将MPVolumeView的框架设置为非屏幕位置,如(-100,-100)。

Swift 3

您可以使用隐藏系统MPVolumeView

 override func viewDidLoad() { super.viewDidLoad() let volumeView = MPVolumeView(frame: CGRect.zero) self.view.addSubview(volumeView) }