使用javascript播放音频的Android WebView
问题描述:
我试图非常快速地通过播放声音(使用soundmanager2)将html应用程序移植到使用WebView的原生android应用程序。从我的研究中,我还没有看到任何证据表明可以通过JavaScript或使用WebView的任何其他方法播放诸如mp3之类的声音。使用javascript播放音频的Android WebView
我现在的目标是快速移植html应用程序,然后最终创建一个真正的原生应用程序而不使用WebView。
请让我知道是否有人能够使用WebViews和Javascript成功实现播放音频,或者目前这是不可能的。
谢谢。
答
玩弄这样的:
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);
答
这会适合你吗?
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尝试()或类似的东西,我还没有试过这样,但我想它的工作方式相同。顺便说一下,这是你想要在背景上播放该音频的情况,如果你想展示真正的播放器,我认为你必须自己实现视图。
如果你正在考虑HTML5音频标签,忘记它。 AFAIK Froyo不以任何方式支持它。
我希望这可以帮助,而且还不算太晚。
问候。
+0
我想使用这个,但我不知道该怎么用,而不是“WebViewVideo.this” – NassimPHP 2017-08-21 16:17:16
我想为它找到一个很好的解决方法。检查了这一点: http://stackoverflow.com/a/40634355/3866399 – 2016-11-16 14:19:09