3

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 を使用しています。

ありがとう。

4

3 に答える 3

1

のようなオーディオタグを想定すると、Javascript を使用してタグ自体のプロパティを<audio id="player" src="something.mp3" />切り替える必要があります...muted

$('#player').muted = true;
于 2012-11-13T21:24:08.567 に答える
1

オーディオを次のように設定すると機能します: (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);
        }
于 2012-12-31T18:10:10.747 に答える
0

私の MotoX 4.2 デバイスの解決策はまだ見つかりませんが、これはほとんどの場合うまくいく傾向があります。

ここでの注意点は、Samsung 4.3 デバイスの「再生」が早すぎることです。ビデオが実際に再生を開始すると起動するはずですが、ビデオの読み込みが開始されると起動します。

if (sdkVersion < 4.4) {
    player.addEventListener("timeupdate", pauseIfPlaying); // check player.currentTime > 0
} else {
    player.addEventListener("playing", function () {
        player.muted = true;
    });
}
于 2015-09-23T01:30:50.777 に答える