私はapplicationMusicPlayerを使用していますが、音量を変更しようとすると、図に示すように視覚的な通知が表示されます。ここに私が使用しているコードがあります:
[MPMusicPlayerController applicationMusicPlayer] setVolume:newVolune];
この通知を非表示にする方法を知っている人はいますか?
私はapplicationMusicPlayerを使用していますが、音量を変更しようとすると、図に示すように視覚的な通知が表示されます。ここに私が使用しているコードがあります:
[MPMusicPlayerController applicationMusicPlayer] setVolume:newVolune];
この通知を非表示にする方法を知っている人はいますか?
ドキュメントにそのように記載されている場所はわかりませんが、MPVolumeView
アプリにビューを追加すると、システムボリュームオーバーレイが消えます。表示されていない場合でも:
- (void) viewDidLoad
{
[super viewDidLoad];
MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame: CGRectZero];
[self.view addSubview: volumeView];
[volumeView release];
...
}
ハードウェアボリュームボタン、setVolume
メソッドを使用するか、オーバーレイが表示されないコントロール(表示されている場合)を直接操作できます。
MPVolumeView
iOS6の場合、デフォルトの音量変更通知を非表示にするには、の画像フィールドにアルファ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
、画面上で「表示」されますが、ユーザーには表示されません。
最近同じ問題が発生しました。MPVolumeViewを現在のViewControllerのビューに追加する代わりに、アプリの起動時に一度アプリケーションのウィンドウに追加します。
CGRect rect = CGRectMake(-500, -500, 0, 0);
MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:rect];
[self.window addSubview:volumeView];
これはiOS7と8の両方で機能します。
スウィフト3
を使用してシステムMPVolumeViewを非表示にできます
override func viewDidLoad() {
super.viewDidLoad()
let volumeView = MPVolumeView(frame: CGRect.zero)
self.view.addSubview(volumeView)
}
私はiOS6でこれで成功しましたが、うまく機能しませんでした。thumbImageをスライドさせると、かなりのラグが発生しました。これを機能させるには、コードの最後の2行を削除する必要がありました。
[volumeView release];
...
私にとって、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)などの画面外の場所に設定するだけです。