我正在尝试使用WebView将播放声音(使用soundmanager2)的html应用程序快速移植到本机Android应用程序。根据我的研究,我没有看到任何证据表明可以通过javascript或使用WebView的任何其他方法播放声音,例如mp3。
我现在的目标是快速移植html应用程序,然后最终创建一个真正的原生应用程序而不使用WebViews。
如果有人能够使用WebViews和Javascript成功实现播放音频,或者目前无法做到这一点,请告诉我。
谢谢。
答案 0 :(得分:2)
这对你有用吗?
mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith(".ogg")){
Log.d(TAG, "Reproducir archivo OGG");
Uri tempPath = Uri.parse(url);
MediaPlayer player = MediaPlayer.create(WebViewVideo.this, tempPath);
player.start();
return true;
}else{
return super.shouldOverrideUrlLoading(view, url);
}
}
});
如果你真的想使用Javascript,你可以尝试使用document.open()或类似的东西,我没有尝试过,但我想它会以同样的方式工作。
顺便说一下,你想在背景上播放音频,如果你想要显示实际的播放器,我认为你必须自己实现View。
如果您正在考虑使用html5音频标签,请忘掉它。 AFAIK Froyo不以任何方式支持它。
我希望这会有所帮助,现在还为时不晚。
问候。
答案 1 :(得分:2)
玩这个:
if(cm.message().contains("play sound")) {
//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);