如果源文件存储在本地,HTML5音频标记似乎在Web视图中不起作用。 即。
<audio controls="controls">
<source src="my_local_audio_file.mp3" type="audio/mpeg" />
</audio>
从src="http://example.com/audio.mp3"
我在Android ICS上尝试它。
有一些解决方法如here所述。但我不明白为什么会出现这个问题。
有关为何发生这种情况的任何解决方案或见解?
谢谢。
答案 0 :(得分: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代码调用音频。
答案 1 :(得分:1)
这似乎是webview中一个非常愚蠢的错误。目前的一种解决方法是将音频“编码”为mp4文件,然后通过视频标签将其链接。
<video width="100%" height="48" controls>
<source src="audioonly.mp4" type="video/mp4">
</video>
这将显示黑色矩形(无视频)以及内部控件。到目前为止,它不是最好的解决方案,而是最简单的方案。您可以在Mac和Windows上使用Miro Video Converter来创建这样的mp4。
祝你好运:)