代码改变世界

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

2016-04-22 00:55  27唐凤婵  阅读(287)  评论(0编辑  收藏  举报

课程名称

基于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”的错误,还没能找到原因。

实验评语

 

实验成绩

 

指导教师签名:              年   月   日