如何使来自 UIWebView 的音频静音

Posted

技术标签:

【中文标题】如何使来自 UIWebView 的音频静音【英文标题】:How do I mute the audio coming from a UIWebView 【发布时间】:2012-04-19 22:22:49 【问题描述】:

我的应用包含一个带有第 3 方内容的 UIWebView。内容有时包括 html5 视频。当用户通过我的应用程序的设置或通过响铃/静音开关使音频静音时,我想要一种使 html5 音频静音的方法。

我尝试使用所有这些都无济于事:

[[AVAudiosession sharedInstance] setCategory: AVAudioSessionCategorySoloAmbient error:nil]];
[[MPMusicPlayerController applicationMusicPlayer] setVolume:0.0];
[[MPMusicPlayerController iPodMusicPlayer] setVolume:0.0];

【问题讨论】:

【参考方案1】:

我也在想同样的事情。我有一个播放 HTML5 音频的 UIWebView。我认为解决方案将分为两部分:

我必须明确允许在 web 视图中播放音频:

// Allow audio playback in the UIWebView:
self.webView.allowsInlineMediaPlayback = YES;
self.webView.mediaPlaybackRequiresUserAction = NO;

所以,如果有办法在静音开关关闭时有条件地将它们设置为相反,那就可以了。

问题是,在 iOS 5.0 及更高版本中似乎没有办法做到这一点。

【讨论】:

我几乎可以肯定这是不可能的 实际上,找到了一个开发者,他正在销售一个声称可以做到这一点的存档:verietassoftware.com/…(我尝试了他们的示例应用程序,它在我的运行 iOS 5.1 的 4S 上运行。) 这是一个有趣的库,但它只是告诉你是否启用了响铃静音开关。它不提供任何方法来消除从 UIWebView 发出的音频。

以上是关于如何使来自 UIWebView 的音频静音的主要内容,如果未能解决你的问题,请参考以下文章

AVFoundation 添加音频输入使音频播放静音

如何使 iframe 静音?

WebRTC - 如何静音本地音频输出

Sox:使音频文件的前 100 毫秒静音,然后淡入

iOS 铃声开关使网络音频静音

UIWebView 拦截来自 javascript 音频播放器的“设置电影路径:”