Ios 如何实现MPVolumeView?
我希望用户能够使用滑块更改系统音量,我意识到唯一的方法是使用MPVolumeView 但是我找不到它的任何示例代码,而且我尝试实现的每个方法都不会出现Ios 如何实现MPVolumeView?,ios,iphone,volume,mpvolumeview,Ios,Iphone,Volume,Mpvolumeview,我希望用户能够使用滑块更改系统音量,我意识到唯一的方法是使用MPVolumeView 但是我找不到它的任何示例代码,而且我尝试实现的每个方法都不会出现 那么,实现MPVolumeView最简单、最正确、最有效的方法是什么呢?将其作为通用的UIView,然后使用检查器将类设置为MPVolumeView(确保还链接了MediaPlayer框架)。它在IB中仍将显示为常规滑块,但在运行时,它将是MPVolumeView的一个实例,并具有必要的样式和行为。请注意,这可能无法在iOS模拟器中正常工作,因为
那么,实现MPVolumeView最简单、最正确、最有效的方法是什么呢?将其作为通用的
UIView
,然后使用检查器将类设置为MPVolumeView
(确保还链接了MediaPlayer框架)。它在IB中仍将显示为常规滑块,但在运行时,它将是MPVolumeView
的一个实例,并具有必要的样式和行为。请注意,这可能无法在iOS模拟器中正常工作,因为iOS模拟器不允许音量控制。使用此选项,它将自动获取音量
mpVolumeViewParentView.backgroundColor = [UIColor clearColor];
MPVolumeView *myVolumeView = [[MPVolumeView alloc] initWithFrame: mpVolumeViewParentView.bounds];
[mpVolumeViewParentView addSubview: myVolumeView];
[myVolumeView release];
在iOS 13中,这种情况发生了变化。在IB中添加一个类设置为
MPVolumeView
的滑块不再有效。因此,被接受的答案不再有效。
正如Apple文档中所述,正确的方法是在IB中使用UIView
,然后在code中添加MPVolumeView
作为子视图。
以下是Swift的使用方法:
// myVolumeViewParentView is the UIView you put in IB
let myVolumeView = MPVolumeView(frame: myVolumeViewParentView.bounds)
myVolumeViewParentView.addSubview(myVolumeView)
此方法也适用于iOS 12。是否将其添加为某些屏幕视图的子视图?我想我应该做这项工作。谢谢你,它现在可以工作了,我现在只需要帮我把它放到一个视图中。。通过更改UISlider,它可以正常工作。请确保添加MediaPlayer.framework,否则它将显示为UISliderTanks以获取帮助。它不能在模拟器上工作,这真的很烦人。如果要始终隐藏右侧的按钮(路由按钮),请同时添加myVolumeView.showsRouteButton=NO;当有人询问示例时,我看不到从苹果的文档中复制代码有什么帮助。。。这非常有用,因为你不应该发布链接,而应该发布解决方案。此代码在十年后仍将存在(可能),下周链接可能无效。请稍候。但是按照这个逻辑,如果这个链接在十年内无效呢互联网坏了!:O.供参考5年后,该链接正常,但与本例不同的是,该链接已被更新和维护。^无法保证第三方链接仍然有效。