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

MPVolumeViewiOS6の場合、デフォルトの音量変更通知を非表示にするには、の画像フィールドにアルファ0でゼロ以外のサイズの画像を設定する必要がありました。

// 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を現在のViewControllerのビューに追加する代わりに、アプリの起動時に一度アプリケーションのウィンドウに追加します。

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

これはiOS7と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

私はiOS6でこれで成功しましたが、うまく機能しませんでした。thumbImageをスライドさせると、かなりのラグが発生しました。これを機能させるには、コードの最後の2行を削除する必要がありました。

[volumeView release];
    ...
于 2013-06-01T08:39:54.513 に答える
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 に答える