【问题标题】:Android WebView playing audio with javascriptAndroid WebView 使用 javascript 播放音频
【发布时间】:2010-09-25 19:41:04
【问题描述】:

我正在尝试非常快速地将带有播放声音的 html 应用程序(使用 soundmanager2)移植到使用 WebView 的本机 android 应用程序。根据我的研究,我没有看到任何证据表明声音(例如 mp3)可以通过 javascript 或使用 WebView 的任何其他方法播放。

我现在的目标是快速移植 html 应用程序,然后最终在不使用 WebViews 的情况下创建一个真正的原生应用程序。

如果有人能够使用 WebViews 和 Javascript 成功实现播放音频,或者目前无法实现,请告诉我。

谢谢。

【问题讨论】:

标签: javascript android audio webview


【解决方案1】:

玩弄这个:

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

【讨论】:

    【解决方案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 不以任何方式支持它。

    我希望这会有所帮助,现在还为时不晚。

    问候。

    【讨论】:

    • 我正在尝试使用这个,但我不确定用什么来代替“WebViewVideo.this”
    猜你喜欢
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 2015-05-27
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 2012-12-16
    相关资源
    最近更新 更多