HTML5 <audio>标记在Android Webview中不起作用

var*_*505 6 html5 android webview html5-audio

如果源文件存储在本地,则HTML5音频标记似乎在Web视图中不起作用.即

<audio controls="controls">
   <source src="my_local_audio_file.mp3" type="audio/mpeg" />
</audio>
Run Code Online (Sandbox Code Playgroud)

当从像这样的服务器访问文件时它可以工作 src="http://example.com/audio.mp3"

我在Android ICS上尝试它.

有几个解决方法是说在这里.但我不明白为什么会出现这个问题.

关于为什么会发生这种情况的任何解决方案或见解?

谢谢.

小智 2

这只是实现从 html 文件播放音频的目标的替代方法

使用Android的Mediaplayer(http://developer.android.com/reference/android/media/MediaPlayer.html)来播放音频。你可以从你在 HTML 文件中编写的 javascript 调用 android 的函数。

这是如何从 javascript 代码调用 java 文件中编写的函数的示例

WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
--------------------------------
public class WebAppInterface {

    Context mContext;
    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }

    /** Show a toast from the web page */
    @JavascriptInterface
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}

---------------------------
java sript code

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />

<script type="text/javascript">
    function showAndroidToast(toast) {
        Android.showToast(toast);
    }
</script>
Run Code Online (Sandbox Code Playgroud)

这样您就可以从 Android 代码调用音频。