android webkit音频工作在4.1.2及以下但不在上面?

时间:2013-11-02 01:57:55

标签: javascript android html5-audio

你好SO社区,

我正在使用html和js以及webview为Android做一个应用程序。该应用程序按下按钮(html)播放声音。感谢你(SO人)我可以使用这段代码使它工作:java =

    myJSInterface = new MyJSInterface(getApplicationContext());
    webview.addJavascriptInterface(myJSInterface, "Android");

公共类MyJSInterface {

    Context mcontext;
    MediaPlayer mp;

    MyJSInterface(Context c) {
        mcontext = c;
    }
    public void MyAudioPlayer01(int audio) {
        /** play sound from the web page */
        if (issound) {
            Integer[] soundid = { null, null, R.raw.s01, R.raw.s02,
                    R.raw.s28, null, null, R.raw.xdhiboun, };

            if (soundid[audio] != null) {
                mp = MediaPlayer.create(mcontext, soundid[audio]);
                mp.start();
                mp.setOnCompletionListener(new OnCompletionListener() {
                    @Override
                    public void onCompletion(MediaPlayer mp) {
                        mp.release();
                        mp = null;
                    }
                });
            }
        }
    }

我通过js调用上面的代码:js code =

    Android.MyAudioPlayer01(audio);

这适用于Android 4.1.2,但不适用于上面!

你能提出一些建议吗(我一整天都在搜索)?

我也试过没有运气的soundPool: - (

是否与js和webview安全更新有关?我需要为更新的Android版本添加更多权限吗?媒体播放器已经过时了吗? ...

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我发现了问题:

  

警告:如果您已将targetSdkVersion设置为17或更高,则必须   将@JavascriptInterface注释添加到您想要的任何方法   可用于您的JavaScript(该方法也必须是公共的)。如果你   不提供注释,您的方法无法访问   在Android 4.2或更高版本上运行时的网页。

现在使用mediaplayer和soundpool一切正常。

YOUPI: - )

谢谢大家,和平。