课程名称 |
基于Android平台移动互联网开发 |
实验日期 |
2016-4-21 |
||
实验项目名称 |
在应用程序中播放音频和视频 |
实验地点 |
S3010 |
||
实验类型 |
□验证型 √设计型 □综合型 |
学 时 |
|||
一、实验目的及要求(本实验所涉及并要求掌握的知识点) |
|||||
1) 实现播放音频,音频播放控制; 2) 实现播放视频,视频播放控制; 3) 使用Service服务播放项目源文件中的音乐。 |
|||||
二、实验环境(本实验所使用的硬件设备和相关软件) |
|||||
(1)PC机 (2)操作系统:Windows XP (3)软件: Eclipse, JDK1.6,Android SDK,ADT |
|||||
三、实验内容及步骤 |
|||||
1.导入工程
2.添加TMediaplayer、MyService、Video类和mediaplayer、video布局文件。 3.完善activity类。 |
|||||
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图) |
|||||
代码: 一、 1、播放本地文件系统中的音乐 musicButton.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated method stub String sdCard=Environment.getExternalStorageDirectory().getPath(); try { mediaPlayer.setDataSource(sdCard+File.separator+"music.mp3"); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException 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(); } try { mediaPlayer.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mediaPlayer.start(); Toast.makeText(TMediaplayer.this, "正在播放本地文件系统中的音乐", Toast.LENGTH_SHORT).show(); } }); 2、使用Service服务播放项目源文件中的音乐 public class MyService extends Service { private MediaPlayer mp;
@Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { super.onCreate(); mp=MediaPlayer.create(this,R.raw.aa); Log.i("aaaaaaaaa", "MusicService onCreate被运行");
}
public int onStartCommand(Intent intent, int flags, int startId) { // TODO Auto-generated method stub mp.start(); Log.i("gggggggggggg", "MusicService onStartCommand被运行"); Toast.makeText(MyService.this, "正在播放源文件中的音乐~", Toast.LENGTH_SHORT).show(); return super.onStartCommand(intent, flags, startId);
} 3、播放视频 File file=new File("/sdcard/Movies/shudu.mp4"); Log.i("vvvvvvvvvvvvv", "33333333333"); mcController=new MediaController(Video.this); if(file.exists()){ videoView.setVideoPath(file.getAbsolutePath()); videoView.setMediaController(mcController); videoView.requestFocus(); try{ videoView.start(); }catch(Exception e){ e.printStackTrace(); } Log.i("ffffffff", "33333333333"); videoView.setOnCompletionListener(new OnCompletionListener() {
@Override public void onCompletion(MediaPlayer arg0) { // TODO Auto-generated method stub } }); 4、停止音乐播放 pauseBtn.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated method stub stopService(intent); mediaPlayer.stop(); Toast.makeText(TMediaplayer.this, "停止播放", Toast.LENGTH_SHORT).show();
} }); 5、退出 exitBtn.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated method stub stopService(intent);
intent.setClass(TMediaplayer.this,LoginActivity.class); startActivity(intent); } }); 运行结果:(截图) 一、播放本地文件音乐 二、播放源文件音乐 三、停止播放音乐 四、播放视频 |
|||||
五、实验总结(对本实验结果进行分析,实验心得体会及改进意见) |
|||||
通过这次实验,基本上了解了播放音频和视频的方法,但是过程中遇到了比较多的问题。比如说,创建了一个与定义对象同名的类,会干扰对对象的识别,直接报错。还有视频播放未能实现,在点击了播放视频按钮之后,跳转到播放视频的页面之后,弹出“can’t play this video”的错误,还没能找到原因。 |
|||||
实验评语 |
|
||||
实验成绩 |
|
指导教师签名: 年 月 日 |