《android开发之在线播放器 2》由会员分享,可在线阅读,更多相关《android开发之在线播放器 2(10页珍藏版)》请在人人文库网上搜索。
1、Android开发之在线播放器By alephsoul这节将介绍一个在线播放音乐的小程序,简单的介绍一下这个程序完成了什么,本程序通过访问已事先运行起来的一个web网站,通过该网站能看到几首音乐,点击“播放”就可以在本机上播放网络上的音乐,代码简单的很,不过我觉得这个创意还是不错滴为了能做出效果,我把用到的高级技术能裁剪的都裁剪掉了,下面用到的技术是完成这个项目的最小技术集。1、 android媒体库里MediaPlayer类的使用/核心12、 android类库中的WebView的使用3、 android中java和javascript的交互/核心24、 一丁点Web开发的知识(html,j。
2、avascript)下面是我做出来的几张效果图Tomcat服务器中应用程序的目录结构Chrome浏览器中浏览效果图android程序结构图Android中浏览效果图注:点击上图中的“播放”就可以听到音乐了步骤:1、 在tomcat中新建一个web项目,用作网络音乐网站在/apache-tomcat-6.0.29/webapps/下新建myWebSite目录在myWebSite下新建WEB-INF文件在WEB-INF下新建web.xml文件,内容与一般的web程序中类似在myWebSite下新建index.html文件,并拷如几个mp3文件index.html内容见附录,运行tomcat,访问应。
3、用,出现2图则成功2、 在eclipse上新建一个android项目,用于实现播放网站上的音乐由于涉及到网络,在AndroidManifest.xml文件添加internet访问权限在main.xml文件中添加一个WebView控件编写一个用于播放音乐的类,该类将作为javascript接口在activity中获取WebView并设置属性运行程序.核心代码:1、 播放音乐if(mediaPlayer.isPlaying()mediaPlayer.reset();mediaPlayer.setDataSource(url);/url为函数传入的音乐地址mediaPlayer.prepare();。
4、mediaPlayer.start(); 2、 WebView属性设置this.webView = (WebView) this.findViewById(R.id.webView);this.webView.getSettings().setJavaScriptEnabled(true);this.webView.getSettings().setAppCacheEnabled(false);this.webView.getSettings().setSupportZoom(true);this.webView.getSettings().setBuiltInZoomControls(tru。
5、e);this.webView.addJavascriptInterface(new PlayMusicInterface(this), musicplayer);this.webView.loadUrl(http:/10.16.32.17:8080/myWebSite/index.html);3、 Html中的table技巧原本打算用标签来实现音乐地址的获取,尝试一下不行,于是用到了的title属性,这个属性原本用于鼠标移到上面显示的内容的,正好也可以用于存储音乐地址。function play(obj)/这里的musicplayer对象就是android程序中定义的javascript接口。
6、musicplayer.playMusic(obj.getAttribute(title);附录Index.htmlbodyline-height: 1.6em;#hor-minimalist-afont-family: Lucida Sans Unicode, Lucida Grande, Sans-Serif;font-size: 12px;background: #fff;margin: 45px;width: 400px;border-collapse: collapse;text-align: left;#hor-minimalist-a thfont-size: 14px;font。
7、-weight: normal;color: #039;padding: 8px 8px;border-bottom: 2px solid #6678b1;#hor-minimalist-a tdcolor: #669;padding: 9px 8px 0px 8px;#hor-minimalist-a tbody tr:hover tdcolor: #009;var count = 0;function play(obj)musicplayer.playMusic(obj.getAttribute(title);歌手歌曲播放班得瑞迷雾水珠播放班得瑞龙的心播放班得瑞其他播放班得瑞遗失的爱播放 。
8、班得瑞迷雾水珠播放Main.xmlAndroidManifest.xmlOnlineMusic.javapackage cn.edu.hfut.activity;import android.app.Activity;import android.net.Uri;import android.os.Bundle;import android.webkit.WebView;import android.widget.MediaController;import android.widget.VideoView;public class OnlineMusic extends Activity p。
9、rivate WebView webView = null;/* Called when the activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);getWidget();public void getWidget()this.webView = (WebView) this.findViewById(R.id.webView);this.webV。
10、iew.getSettings().setJavaScriptEnabled(true);this.webView.getSettings().setAppCacheEnabled(false);this.webView.getSettings().setSupportZoom(true);this.webView.getSettings().setBuiltInZoomControls(true);this.webView.addJavascriptInterface(new PlayMusicInterface(this), musicplayer);this.webView.loadUr。
11、l(http:/10.16.32.17:8080/myWebSite/index.html);PlayMusicInterface.javapackage cn.edu.hfut.activity;import java.io.IOException;import android.content.Context;import android.media.MediaPlayer;import android.net.Uri;import android.webkit.URLUtil;import android.widget.Toast;import android.widget.VideoVi。
12、ew;public class PlayMusicInterface private Context context = null;private MediaPlayer mediaPlayer = null;public PlayMusicInterface( Context context)this.context = context;mediaPlayer = new MediaPlayer();public void stopMusic()if(mediaPlayer.isPlaying()mediaPlayer.stop();public void playMusic(String url)if(mediaPlayer.isPlaying()mediaPlayer.reset();try mediaPlayer.setDataSource(url);mediaPlayer.prepare();mediaPlayer.start(); catch (IllegalArgumentException e) e.printStackTrace(); catch (IllegalStateException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();进度条问题有待解决。