Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何实现MPVolumeView?_Ios_Iphone_Volume_Mpvolumeview - Fatal编程技术网

Ios 如何实现MPVolumeView?

Ios 如何实现MPVolumeView?,ios,iphone,volume,mpvolumeview,Ios,Iphone,Volume,Mpvolumeview,我希望用户能够使用滑块更改系统音量,我意识到唯一的方法是使用MPVolumeView 但是我找不到它的任何示例代码,而且我尝试实现的每个方法都不会出现 那么,实现MPVolumeView最简单、最正确、最有效的方法是什么呢?将其作为通用的UIView,然后使用检查器将类设置为MPVolumeView(确保还链接了MediaPlayer框架)。它在IB中仍将显示为常规滑块,但在运行时,它将是MPVolumeView的一个实例,并具有必要的样式和行为。请注意,这可能无法在iOS模拟器中正常工作,因为

我希望用户能够使用滑块更改系统音量,我意识到唯一的方法是使用MPVolumeView

但是我找不到它的任何示例代码,而且我尝试实现的每个方法都不会出现


那么,实现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年后,该链接正常,但与本例不同的是,该链接已被更新和维护。^无法保证第三方链接仍然有效。