我正在尝试设置 AVPlayer 的音量,但似乎不起作用。它占用系统容量并忽略代码中设置的值。以下是我的代码。我们如何设置音量级别?
let player = AVPlayer(url: URL(string:recordingFileURL)!)
let playerController = AVPlayerViewController()
playerController.player = player
playerController.videoGravity = AVLayerVideoGravity(rawValue: AVLayerVideoGravity.resizeAspectFill.rawValue)
self.present(playerController, animated: true) {
player.play()
player.volume = 0.8 // Doesn't have any affect
}
播放器.音量= 0.8
此属性在 iOS 上最有用,用于控制 AVSampleBufferAudioRenderer 相对于其他音频输出的音量,而不是用于设置绝对音量。
Apple 文档说这是不可能的。
该属性用于控制播放器音频相对于系统音量的音量。 iOS 中没有编程方式来控制系统音量,但您可以使用 MediaPlayer 框架的 MPVolumeView 类来呈现用于控制系统音量的标准用户界面。
由于 AVPlayer 音量是相对于系统音量而言的,因此您永远不能强制 AVPlayer 播放的声音大于系统音量。
您在评论中说:
我的假设是上面代码中设置的值应该覆盖系统卷的值
这个假设是错误的。如果系统音量为 0.2,而您将播放器的音量设置为 0.8,那么您所做的就是使播放器变得更柔和 (0.16)。正如文档告诉您的那样:
该属性用于控制播放器音频相对于系统音量的音量。 iOS 中没有编程方式来控制系统音量。
给player.volume = 100后,它就制作好了并且效果