2013-10-03 151 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使这对你更容易。

希望有所帮助。

相关问题