控制音量與顯示HUD全部都在 MPVolumeView 這個(gè)類做操作
- 這個(gè)方法是蘋果官方推薦的方法:
MPVolumeView是Media Player Framework中的一個(gè)UI組件 - 蘋果官方廢棄的方法: MPMusicPlayerController , 這里就不展開了
1. 控制音量: UISlider
UISlider 是 MPVolumeView 的一個(gè)子類, 所有我們需要在MPVolumeView里面找出UISlider這個(gè)子類來, 就可以控制音量的大小.
在任何地方都可以獲取UISlider來控制音量.
代碼百度很多:
/**
獲取系統(tǒng)音量控制條
*/
- (void)getSystemVolumSlider
{
self.volumeSlider = nil;
MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:CGRectZero];
for (UIView* newView in volumeView.subviews) {
if ([newView.class.description isEqualToString:@"MPVolumeSlider"]){
self.volumeSlider = (UISlider*)newView;
break;
}
}
}
/// 修改音量大小
/// UISlider 里面的value屬性可以設(shè)置和獲取系統(tǒng)音量
self.volumeSlider.value = 999; // 或者
[self.volumeSlider setValue:999];
2. 顯示與隱藏音量HUD: MPVolumeView
音量HUD是系統(tǒng)的HUD, 如果系統(tǒng)檢測到?jīng)]有顯示 HUD, 會(huì)自動(dòng)幫我們顯示, 所以我們要做的就是, 自己創(chuàng)建一個(gè) MPVolumeView 添加到 控制器的view上面.
如果不需要系統(tǒng)的HUD的話, 我們可以把 MPVolumeView 的frame 設(shè)置為0, 或者不設(shè)置frame, 或者設(shè)置到屏幕外面, 都可以.
如果需要系統(tǒng)的HUD的話, 直接不添加到控制器的view上面就可以, 因?yàn)橄到y(tǒng)檢測到?jīng)]有 設(shè)置 MPVolumeView 就會(huì)自動(dòng)添加
//自定義MPVolumeView
MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:CGRectZero];
//把自定義的MPVolumeView添加到控制器的view上
[self.view addSubview: volumeView];
注意: 顯示與隱藏只能在控制器中操作, 在view里面是無法操作的