• 实验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卡的区别以及代码实现。

    实验评语

    实验成绩

    指导教师签名:              年   月   日

  • 相关阅读:
    llinux文件相关指令
    移除元素【数组专题】
    移动零【数组专题】
    删除数组中重复的元素plus【数组专题】
    TCP超时重传时间的选择
    linux帮助指令
    各种缩写
    MyEclipse开发WebService教程(转)
    RMI 自己创建的 过程
    RMI简单实例 (转)
  • 原文地址:https://www.cnblogs.com/clcbk/p/5418897.html
Copyright © 2020-2023  润新知