6

如果源文件存储在本地,HTML5 音频标签似乎在 Web 视图中不起作用。IE

<audio controls="controls">
   <source src="my_local_audio_file.mp3" type="audio/mpeg" />
</audio>

它在从服务器访问文件时起作用,例如src="http://example.com/audio.mp3"

我正在 Android ICS 上尝试它。

如here所述,有一些解决方法。但我不明白为什么会出现这个问题。

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

谢谢你。

4

2 回答 2

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>

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

于 2013-04-25T09:48:32.520 回答
1

这似乎是 webview 中的一个非常愚蠢的错误。当前的一种解决方法是将音频“编码”为 mp4 文件,然后通过视频标签链接它。

<video width="100%" height="48" controls>
     <source src="audioonly.mp4" type="video/mp4">
</video>

这将显示一个黑色矩形(无视频)以及里面的控件。到目前为止,这不是最好的解决方案,而是最简单的解决方案。您可以在 Mac 和 Windows 上使用 Miro Video Converter 来创建这样的 mp4。

祝你好运 :)

于 2013-06-24T07:21:03.530 回答