14

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

[MPMusicPlayerController applicationMusicPlayer] setVolume:newVolune];

有人知道如何隐藏此通知吗?

在此处输入图像描述

4

6 回答 6

28

我不知道文档在哪里这么说,但是如果您MPVolumeView向应用程序添加视图,系统音量覆盖就会消失。即使它不可见:

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

您可以使用硬件音量按钮、setVolume方法或直接与覆盖不显示的控件(如果可见)进行交互。

于 2011-10-25T12:02:36.673 回答
4

对于 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屏幕上“可见”,但对用户不可见。

于 2013-06-25T22:58:21.430 回答
2

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

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

这适用于 iOS 7 和 8。

于 2014-10-14T21:16:25.880 回答
1

斯威夫特 3

您可以使用隐藏系统MPVolumeView

override func viewDidLoad() {
    super.viewDidLoad()
    let volumeView = MPVolumeView(frame: CGRect.zero)
    self.view.addSubview(volumeView)
  }
于 2017-02-14T16:40:31.363 回答
0

对我来说,在 iOS 7 上,上述解决方案都不起作用。这是我的做法:

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

也就是说,只需将 MPVolumeView 的帧设置为离屏位置,例如 (-100,-100)。

于 2014-02-04T21:52:54.883 回答
0

我在 iOS 6 中取得了成功。虽然它表现不佳。滑动 thumbImage 时会造成相当大的延迟。我确实必须取出最后两行代码才能使其正常工作。

[volumeView release];
    ...
于 2013-06-01T08:39:54.513 回答