实验6 在应用程序中播放音频和视频

课程名称

基于Android平台移动互联网开发

实验日期

2015年4月15日

实验项目名称

在应用程序中播放音频和视频

实验地点

S30010

实验类型

□验证型    √设计型    □综合型

学  时

2

一、实验目的及要求(本实验所涉及并要求掌握的知识点)

【目的】

实现在应用程序中处理音频和视频。

【要求】

1) 实现播放音频,音频播放控制;

2) 实现播放视频,视频播放控制;

3) 使用Service服务播放项目源文件中的音乐。

 

二、实验环境(本实验所使用的硬件设备和相关软件)

(1)PC机 

(2)操作系统:Windows XP 

(3)软件: Eclipse, JDK1.6,Android SDK,ADT

三、实验内容及步骤

1、在数独游戏原有项目基础上新建布局文件media_activity.xml,添加相应的button等控件

2、创建media关联相应的控件

3、修改media.java

(1) 定义MediaPlayer对象

private MediaPlayer mediaPlayer=new MediaPlayer();

(2) 为各按钮添加监听事件

      主要为开始,结束等设置相应的监听事件,还要明确播放文件的来源。

 

四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)

 

代码:

Media类主要代码

public class media extends Activity{

 

 

private MediaPlayer mediaPlayer=new MediaPlayer();

private Button btnsourcestart,btnSDstart,btnstop,btnmedia,exit;

private TextView tvmedia;

private File file,filevideo;

 

 

private VideoView video;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.media_activity);

 

btnsourcestart=(Button)findViewById(R.id.buttonSourceStart);

btnSDstart=(Button)findViewById(R.id.buttonSDStart);

btnstop=(Button)findViewById(R.id.buttonstop);

 

exit=(Button)findViewById(R.id.buttonExit);

tvmedia=(TextView)findViewById(R.id.textmedia);

 

//获得sd卡音乐文件

file = new File(Environment.getExternalStorageDirectory().getPath()+"/nan.mp3");

if (file.exists()) {

mediaPlayer=MediaPlayer.create(media.this, Uri.parse(file.getAbsolutePath()));

}else {

Toast.makeText(media.this, "文件不存在!", Toast.LENGTH_LONG).show();

}

//开始播放SD卡音乐文件

btnSDstart.setOnClickListener(new OnClickListener() {

 

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

mediaPlayer.reset();

try {

mediaPlayer.setDataSource(file.getAbsolutePath());

mediaPlayer.prepare();

mediaPlayer.start();

tvmedia.setText("正在播放本地音乐。。。");

} 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();

}

 

}

 

});

 

 

 

 

 

 

 

//播放源文件音乐

 

btnsourcestart.setOnClickListener(new OnClickListener() {

 

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

mediaPlayer=MediaPlayer.create(media.this, R.raw.nan);

mediaPlayer.start();

tvmedia.setText("正在播放音乐。。。");

}

});

btnstop.setOnClickListener(new OnClickListener() {

 

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

if (mediaPlayer.isPlaying()) {

mediaPlayer.stop();

btnstop.setText("停止播放音乐!");

}

 

}

});

exit.setOnClickListener(new OnClickListener() {

 

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

 

Intent intentexit = new Intent();

intentexit.setClass(media.this, MainActivity.class);

finish();

//startActivity(intentexit);

}

});

 

//播放视频

video=(VideoView)findViewById(R.id.videoView1);

filevideo=new File(Environment.getExternalStorageDirectory().getPath()+"/nan.mp3");

MediaController mc=new MediaController(media.this);

if(filevideo.exists()){

video.setVideoPath(filevideo.getAbsolutePath());//指定要播放的·1视频

video.setMediaController(mc);

video.requestFocus();

try{

video.start();

 

}catch(Exception e){

e.printStackTrace();

}

video.setOnCompletionListener(new OnCompletionListener() {

 

@Override

public void onCompletion(MediaPlayer mp) {

// TODO Auto-generated method stub

Toast.makeText(media.this, "视频播放完毕!!", Toast.LENGTH_SHORT).show();

}

});

}else{

Toast.makeText(media.this, "要播放的视频文件不存在!!", Toast.LENGTH_SHORT).show();

}

 

 

 

}

protected void onDestroy() {

// TODO Auto-generated method stub

if (mediaPlayer.isPlaying()) {

mediaPlayer.stop();

}

mediaPlayer.release();

super.onDestroy();

}

}

运行结果:(截图)

播放源文件音乐

 

播放本地音乐

停止播放音乐

播放视频

 

五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)

1、播放音频和视频在代码设计步骤上等同,只是所使用的类库方法不一样,一个是MediaPlayer对象,另一个是时VideoView对象;

2、知道了方法对象后就要明确音频视频播放所需的控制按钮,在控制按钮上设置监听事件,特别是要注意播放文件时引用源文件还是手机SD卡的区别以及代码实现。

实验评语

 

实验成绩

 

指导教师签名:              年   月   日

posted @ 2016-04-21 21:39  17蔡利聪  阅读(279)  评论(0编辑  收藏  举报