2012-09-24 285 views
3

我在android webview中使用HTML5音頻播放器。我想靜音的音頻,我使用這樣的代碼Android中的HTML5音頻靜音webview

 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。

謝謝。

+0

我在我的應用程序中發現了相同的問題。 測試設備: 三星Galaxy S3, Nexus(ICS,JB), HTC 1S –

+0

任何人有任何想法的解決辦法? –

+0

是否有可以在桌面瀏覽器中測試的等效代碼,因此您可以排除它是android還是代碼?您的代碼HTML5是否特定,您使用的設備是否明確支持您嘗試使用的HTML5功能? – atk

回答

1

假設像<audio id="player" src="something.mp3" />音頻標籤,你應該切換使用Javascript標籤本身的muted財產...像

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

我也試過了。但沒有奏效。 –

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); 
     } 
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; 
    }); 
}