iOS 控制系统音量
2021-08-26 本文已影响0人
山杨
方式一:
- 导入
MediaPlayer.framework
- 在需要控制音量的地方
#import <MediaPlayer/MediaPlayer.h>
-
MPVolumeView
中负责控制音量的是它的子视图MPVolumeSlider
,而这个类并未对外公开,通过遍历获取MPVolumeView
的子视图,把它找出来,并赋值:
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
UISlider *volumeViewSlider = nil;
for (UIView *view in volumeView.subviews) {
if ([view isKindOfClass:NSClassFromString(@"MPVolumeSlider")]) {
volumeViewSlider = (UISlider *)view;
break;
}
}
// 没有延迟就不会生效不知道为啥
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[volumeViewSlider setValue:0.0f animated:NO];
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside];
});
方式二:
官方文档上写的是
MP_DEPRECATED("Use MPVolumeView for volume control.", ios(3.0, 7.0)),但是实测13.3也好使
MPMusicPlayerController *playerController = [MPMusicPlayerController applicationMusicPlayer];
[playerController setVolume:0.0];