代码改变世界

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

2016-04-21 22:55  33刘梦云  阅读(197)  评论(0编辑  收藏  举报

实验报告

课程名称

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

实验日期

2016年4月15日

实验项目名称

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

实验地点

S30010

实验类型

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

学  时

2

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

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

2.实现播放音频,音频播放控制;

3. 实现播放视频,视频播放控制;

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

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

(1)PC机

(2)操作系统:Windows XP

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

三、实验内容及步骤

1.新建一个名为MediaPlayer的工程

2.修改布局文件main.xml

3.完善Activity类

4. 新建Service类,使用Service服务播放项目源文件中的音乐,实现后台继续能播放音频。

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

代码:

MainActivity.java类:

public class MainActivity extends Activity {

   private MediaPlayer mediaPlayer=new MediaPlayer();

   private TextView tView;

   private Button startSourceBtn,startLocalBtn,startInternetBtn,startVideoBtn,stopBtn,pauseBtn,exitBtn;

   private File file;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        tView=(TextView)findViewById(R.id.textView1);

        startSourceBtn=(Button)findViewById(R.id.startSourceBtn);

        startLocalBtn=(Button)findViewById(R.id.startLocalBtn);

        startInternetBtn=(Button)findViewById(R.id.startInternetBtn);

        startVideoBtn=(Button)findViewById(R.id.startVidioBtn);

        stopBtn=(Button)findViewById(R.id.stopBtn);

        pauseBtn=(Button)findViewById(R.id.pauseBtn);

        exitBtn=(Button)findViewById(R.id.exitBtn);

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

        if(file.exists()){

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

        }else{

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

        }

        startSourceBtn.setOnClickListener(new OnClickListener() {

         @Override

         public void onClick(View arg0) {

            // TODO Auto-generated method stub

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

            mediaPlayer.start();

         }

      });

        startLocalBtn.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();

            }catch (IllegalArgumentException e) {

                // TODO: handle exception

                e.printStackTrace();

         }catch (SecurityException e) {

            // TODO: handle exception

            e.printStackTrace();

         }catch (IllegalStateException e) {

            // TODO: handle exception

            e.printStackTrace();

         }catch (IOException e) {

            // TODO: handle exception

            e.printStackTrace();

         }

         }

      });

        startInternetBtn.setOnClickListener(new OnClickListener() {

         @Override

         public void onClick(View arg0) {

            // TODO Auto-generated method stub

         }

      });

        startVideoBtn.setOnClickListener(new OnClickListener() {

         @Override

         public void onClick(View arg0) {

            // TODO Auto-generated method stub

            Intent intent=new Intent();

            intent.setClass(MainActivity.this, VideoActivity.class);

            startActivity(intent);

         }

      });        stopBtn.setOnClickListener(new OnClickListener() {

         @Override

         public void onClick(View arg0) {

            // TODO Auto-generated method stub

            if(mediaPlayer.isPlaying()){

                mediaPlayer.stop();

            }

         }

      });

        pauseBtn.setOnClickListener(new OnClickListener() {

         @Override

         public void onClick(View arg0) {

            // TODO Auto-generated method stub

            if(mediaPlayer.isPlaying()){

                mediaPlayer.pause();

            }else {

                mediaPlayer.start();

            }

         }

      });

        exitBtn.setOnClickListener(new OnClickListener() {

         @Override

         public void onClick(View arg0) {

            // TODO Auto-generated method stub

            if(mediaPlayer.isPlaying()){

                mediaPlayer.release();

            }

         }

      });

    }

    @Override

    protected void onDestroy() {

       // TODO Auto-generated method stub

       if(mediaPlayer.isPlaying()){

          mediaPlayer.stop();

       }

       mediaPlayer.release();

       super.onDestroy();

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

}

VideoActivity,java类:

public class VideoActivity extends Activity{

   private VideoView  video;

   private File file;

   @Override

   protected void onCreate(Bundle savedInstanceState) {

      // TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      setContentView(R.layout.video);

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

      file=new File("/");

      MediaController mc=new MediaController(VideoActivity.this);

      if(file.exists()){

         video.setVideoPath(file.getAbsolutePath());

         video .setMediaController(mc);

         video.requestFocus();

         try{

            video.start();

         }catch (Exception e){

            e.printStackTrace();

         }

         video.setOnCompletionListener(new OnCompletionListener() {

           

            @Override

            public void onCompletion(MediaPlayer arg0) {

                // TODO Auto-generated method stub

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

            }

         });

      }else{

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

      }

   }

}

运行结果:(截图)

运行初始界面:                                                                            播放视频:

  

 

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

    实验过程比较痛苦,因为不知道为什么,在打开的DDNS中找不到storage这个文件夹,把工程重新导入之后,发现在打开的DDNS中又可以找到storage这个文件夹了。这时候导入音频文件,运行程序,可以播放源文件中的音乐和本地文件系统中的音乐。无法播放视频,不知道问题出现在哪里。

实验评语

 

实验成绩

 

指导教师签名:              年   月   日