繁体   English   中英

Android webview中的HTML5音频静音

[英]HTML5 Audio Mute in Android webview

我在android webview中使用HTML5音频播放器。 我想静音音频,我正在使用这样的代码

        this.mute = function()
        {
            console.debug("Muted");
            if(_audioHtml.muted == undefined) {
                alert("Doesn't exist");
            }
            else {
                if(_audioHtml.muted === true) {
                    alert("Muted");
                }
                else if (_audioHtml.muted === false) {
                    alert("Non Muted");
                }
                else {
                    alert("None of them");   
                }
            }
            _audioHtml.muted = true;
        };

每次通话后,我都可以看到静音的值发生了变化。 但它不会对设备产生任何影响。 它总是以设定的音量产生声音。 我怎么能在android中做到这一点。 我使用的是Android 4.0.4。

谢谢。

假设像<audio id="player" src="something.mp3" />这样的音频标签,你应该使用Javascript来切换标签本身的muted属性...类似于

$('#player').muted = true;

如果您以这种方式设置音频,它会起作用:( html5标签将被静音)在您的JAVA活动中:

wv.loadUrl("file:///android_asset/index.html");     
 wv.addJavascriptInterface(this, "jInterface");

在你的html文件中:静音:

<script>
jInterface.mute();
</script>

现在回到你的java活动:

public void mute()
        {
             audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);
        }

我还没有找到适用于我的MotoX 4.2设备的解决方案,但这在大多数情况下都适用,基本上你在视频开始播放后暂停

需要注意的是,我的三星4.3设备过早播放“播放”方式,它应该在视频实际开始播放时触发,但在视频开始加载时触发

if (sdkVersion < 4.4) {
    player.addEventListener("timeupdate", pauseIfPlaying); // check player.currentTime > 0
} else {
    player.addEventListener("playing", function () {
        player.muted = true;
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM