如何实现 本地html页面能播放mp3

问题描述:

我做了一个android应用是读取本地的html,模拟器中html里的超链接跳转没问题,图片也可以显示。html里的mp3文件却无法打开,请问高手怎么解决。

搞了两天了。。。。。郁闷啊。啊。谢谢谢谢。。

下面是我的其中一段html代码。

<td width="284">
    <table width="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
     <td width="284" valign="middle">
        <a href="../voices/anyengmenu.mp3"><font size="5">Do you have a menu in English? </font><img src="../images/design/icon_voice.jpg" alt="" border="0" /></a>
  </td>
    </tr>                               
</table>   
</td>
问题补充:
在html里加入object或embed 标签的话,模拟器编译不了。
sound标签不在android模拟器里都读不到mp3.

问题补充:
lich0079

你是在android里实现的?

怎么我直接用你的代码也没效果。。。。
问题补充:
读取的是程序里的html页面,不是远程。
问题补充:
我怎么点击以后没声音啊。其本上是复制你的代码。

<a id="yule_item1000" parent="1000"  onclick="window.temp.goItem('toilet.mp3', '1000', this.type)" type="audio">棉花糖1</a>

super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
// this.requestWindowFeature(Window.FEATURE_NO_TITLE);
web = (WebView) this.findViewById(R.id.wv);
web.getSettings().setJavaScriptEnabled(true);
    web.addJavascriptInterface(new Object() {   
         public void goItem(String url, String parentId, String type) {
                if (player != null) {
                    player.stop();
                    player = null;
                }
                 if (type.equalsIgnoreCase("audio")) {
                    try {
                        player = new MediaPlayer();
                        player.setDataSource(url);
                        player.prepare();
                        player.start();
                    } catch (IllegalArgumentException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IllegalStateException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }  
        }, "demo");   

    web.loadUrl("file:///android_asset/index.html");// 加载网页</pre><br /><strong>问题补充:</strong><br />player.setDataSource("file:///android_asset/"+url);

我做过一个在HTML里点击链接,播放MP3的,
使用WEBView来做HTML的展示
HTML如下:
[code="html"]棉花糖[/code]

之后在Activity中,为WebView增加一个JavaScript实现:
[code="java"]webview.addJavascriptInterface(new ItemListJavaScriptHandler(), "temp");[/code]

具体的JavaScript的方法实现如下:
[code="java"]
public void goItem(String url, String parentId, String type) {
if (player != null) {
player.stop();
player = null;
}
if (type.equalsIgnoreCase("audio")) {
try {
player = new MediaPlayer();
player.setDataSource(DCDContext.SDCARD_FILE_PATH + url);
player.prepare();
player.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
[/code]

不知道是不是你想要的效果

以前做过

读取url的mp3绝对地址应该能放吧?

从你的页面里不能直接打开?

取得你的网址+"/voices/anyengmenu.mp3"这样的绝对地址传给程序的播放调用。。

不太明白你要做的是什么样的东东?

html是要放在android程序中还是远程去调?