【发布时间】:2011-02-17 05:50:00
【问题描述】:
我希望用户能够使用滑块更改系统音量,我意识到做到这一点的唯一方法是使用 MPVolumeView。
但我找不到任何示例代码,而且我尝试实现的每个方法都不会显示。
那么实现 MPVolumeView 最简单、最正确的工作方式是什么?
【问题讨论】:
-
只是将它添加为某些屏幕视图的子视图?应该做我认为的工作。
标签: ios iphone volume mpvolumeview
我希望用户能够使用滑块更改系统音量,我意识到做到这一点的唯一方法是使用 MPVolumeView。
但我找不到任何示例代码,而且我尝试实现的每个方法都不会显示。
那么实现 MPVolumeView 最简单、最正确的工作方式是什么?
【问题讨论】:
标签: ios iphone volume mpvolumeview
将其放置为通用 UIView,然后使用检查器将类设置为 MPVolumeView(确保您还链接了 MediaPlayer 框架)。它仍然会在 IB 中显示为常规滑块,但在运行时,它将是 MPVolumeView 的一个实例,并将具有必要的样式和行为。请注意,这在不允许音量控制的 iOS 模拟器中可能无法正常工作。
【讨论】:
使用它会自动获取它
mpVolumeViewParentView.backgroundColor = [UIColor clearColor];
MPVolumeView *myVolumeView = [[MPVolumeView alloc] initWithFrame: mpVolumeViewParentView.bounds];
[mpVolumeViewParentView addSubview: myVolumeView];
[myVolumeView release];
【讨论】:
在 iOS 13 中,这种情况发生了变化。在 IB 中添加滑块并将其类设置为 MPVolumeView 不再起作用。所以接受的答案不再有效。
正如 Apple 文档中所述,正确的方法是在 IB 中使用 UIView,然后在代码中添加 MPVolumeView 作为子视图。
在 Swift 中是这样的:
// myVolumeViewParentView is the UIView you put in IB
let myVolumeView = MPVolumeView(frame: myVolumeViewParentView.bounds)
myVolumeViewParentView.addSubview(myVolumeView)
此方法也适用于 iOS 12。
【讨论】: