我在做一个隐藏广告的应用浏览器快好了有时浏览器会自动播放声音(可能是JavaScript驱动的)现在我需要关闭此应用程序中的所有声音。我试过两种方法:通过AVFoundation和WebKit。请帮助我得到的想法,我如何能做到这一点。更多的变化是受欢迎的:)
jxct1oxe1#
这可以通过MediaPlayer模块完成:
MediaPlayer
(MPVolumeView().subviews.filter{ NSStringFromClass($0.classForCoder) == "MPVolumeSlider" }.first as? UISlider)?.setValue(0, animated: false)
请注意您可以更改的两个值:
value: how much volume you want (0 in this case) animated: allowing you to animate the change visually
i2loujxw2#
Swift 5 / Xcode 11第一步:
import MediaPlayer
第二步:
let slider = MPVolumeView().subviews.first(where: { $0 is UISlider }) as? UISlider
第三步:
slider?.setValue(0.0, animated: false)
9jyewag03#
这对我很有效
//isMuted is a variable i use to check for the mute mode if isMuted == true { do { try AVAudioSession.sharedInstance().setCategory(.ambient, mode: .default, options: .mixWithOthers) try AVAudioSession.sharedInstance().setActive(true) } catch { print(error) } } else { do { try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: .mixWithOthers) try AVAudioSession.sharedInstance().setActive(true) } catch { print(error) } }
3条答案
按热度按时间jxct1oxe1#
这可以通过
MediaPlayer
模块完成:请注意您可以更改的两个值:
i2loujxw2#
Swift 5 / Xcode 11
第一步:
第二步:
第三步:
9jyewag03#
这对我很有效