2013-10-03 71 views
2

在Android手機上,當我在html文件中使用以下代碼時播放音頻,但是當我刪除「autoplay」屬性時,無法在webview上播放音頻。有沒有人有這個解決方案?無法在android中使用javascript在webview中播放音頻android

<audio id="audiotag1" style="display:none" preload="auto" hidden='true' autoplay> 
</audio> 
<script type="text/javascript"> 
    var audio1 = document.getElementById("audiotag1"); 
    audio1.src = "file:///sdcard/Music/intro.mp3"; 
    audio1.type = "audio/mpeg"; 
    audio1.play(); 
</script> 

在此先感謝

+0

試試這個var clickSound = new Audio('click.mp3'); clickSound.play(); –

+0

在webview中,如果我使用新的Audio()和object.play(),那麼它也不會播放音頻。這次我將得到錯誤作爲MediaPlayer錯誤(-1,2467 ...); 所以我使用了音頻標籤。 – naveenballa

+0

我想我找到了一個很好的解決方法。看一下這個! http://stackoverflow.com/a/40634355/3866399 –

回答

1

嘗試使用此代碼段

//String[] temp = cm.message().split("#"); 
    AudioManager audiomanager= (AudioManager) getSystemService(AUDIO_SERVICE); 
    float actualvolume = (float) audiomanager.getStreamVolume (AudioManager.STREAM_MUSIC); 
    float maxVolume= (float) audiomanager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); 
    float volume = actualvolume/maxVolume; 

    if (loaded) { 
     soundPool.play(soundID, volume, volume, 1, 54, 1f); 
     Log.e("Test", "Played sound"); 
    } 
} else if(cm.message().contains("stop sound")) { 
    soundPool.stop(1); 
    Log.e("Test","stoped"); 
} 

myWebView.loadUrl("file:///android_asset/timer.html"); 
soundID = soundPool.load(this, R.raw.sound1,1); 

看看這個鏈接

http://docs.phonegap.com/en/2.9.0/cordova_media_media.md.html

+0

感謝您的解決方案Vaibs_Cool,但我想從不是從android對象的JavaScript對象播放音頻。 – naveenballa

+0

當我使用cordova api時,音頻正在播放,感謝您的幫助。 – naveenballa

+0

你必須接受一些答案..和upvote –

0

您可以考慮使用音頻庫像SoundJS使這對你更容易。

希望有所幫助。