• 实验6


     实验报告

    课程名称

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

    实验日期

    2016.4.15

    实验项目名称

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

    实验地点

    S3010

    实验类型

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

    学  时

    2

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

    1. 1.实现播放音频,音频播放控制;
    2. 2.实现播放视频,视频播放控制;
    3. 3.使用Service服务播放项目源文件中的音乐。
    4.  

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

    (1)PC机

    (2)操作系统:Windows XP

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

    三、实验内容及步骤

    1. 1)新建工程
    2. 2)修改布局文件main.xml
    3. 3)完善Activity类
    4.  * 这个类主要用来测试调用Andriod.media.MediaPlayer包里面的函数实现音乐播放的功能,
    5.  * 分别播放了工程中资源文件中的音乐文件、本地文件系统中的文件,以及网络上的音乐;
    6.  * 视频播放功能,使用了VideoView控件;
    7.  * 代码中指定了本地文件系统中音频和视频文件的路径,在测试本程序前请按照代码中的路径和音频、视频文件的名称在手机中添加文件;
    8. (4)新建Service类,使用Service服务播放项目源文件中的音乐,实现后台继续能播放音频

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

    代码:

        // TODO Auto-generated method stub
                    try{
                        if(myPlayer1.isPlaying()==true)
                        {
                            myPlayer1.reset();
                        }
                        myPlayer1=MediaPlayer.create(MainActivity.this,R.raw.song1 );
                        myPlayer1.start();
                        Toast.makeText(MainActivity.this, "开始播放源文件",Toast.LENGTH_LONG).show();
                    }
                     catch (IllegalStateException e) 
                     {
                        Toast.makeText(MainActivity.this, "播放源失败",Toast.LENGTH_LONG).show();
    
                     }
                    
                }
            });
            btn2Local=(Button) findViewById(R.id.buttonLocal);
            btn2Local.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    String sdCard=Environment.getExternalStorageDirectory().getPath();
                    try{
                        if(myPlayer1.isPlaying()==true)
                        {
                            myPlayer1.reset();
                        }
                        myPlayer1.setDataSource(sdCard+File.separator+"song2.mp3");
                        myPlayer1.prepare();
                        myPlayer1.start();
                        Toast.makeText(MainActivity.this, "开始播放SD卡文件",Toast.LENGTH_LONG).show();
                    }
                     catch (IllegalStateException e) 
                     {
                        Toast.makeText(MainActivity.this, "播放SD卡文件失败",Toast.LENGTH_LONG).show();
    
                     } catch (IllegalArgumentException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (SecurityException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            });
            btn3Inter=(Button) findViewById(R.id.buttonInternet);
            btn3Inter.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    
                    try{
                        if(myPlayer1.isPlaying()==true)
                        {
                            myPlayer1.reset();
                        }
                        myPlayer1.setDataSource("http://www.yy521.com/2012zuixingequ/plays/wangluogequ/index21274.html");
                        myPlayer1.start();
                        Toast.makeText(MainActivity.this, "开始播放网络音乐",Toast.LENGTH_LONG).show();
                    }
                     catch (IllegalStateException e) 
                     {
                        Toast.makeText(MainActivity.this, "播放网络音乐失败",Toast.LENGTH_LONG).show();
    
                     } catch (IllegalArgumentException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (SecurityException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    
                }
            });
            btnstarMedia=(Button) findViewById(R.id.buttonStarMedia);
            btnstarMedia.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    
                }
            });
            btnStop=(Button) findViewById(R.id.buttonStop);
            btnStop.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    myPlayer1.stop();
                }
            });
            btnExit=(Button) findViewById(R.id.buttonExit);
            btnExit.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    System.exit(0);
                }
            });
            btnservice=(Button) findViewById(R.id.MusicServiceButton);
            btnservice.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    startService(new Intent(MainActivity.this,MusicService.class));
                }
            });
            btnserStop=(Button) findViewById(R.id.MusicServiceStop);
            btnserStop.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                
                    stopService(new Intent(MainActivity.this,MusicService.class));
                    
                }
            });
            btnstarMedia=(Button) findViewById(R.id.buttonStarMedia);
            btnstarMedia.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Intent intent1=new Intent();
                    intent1.setClass(MainActivity.this, VideoActivity.class);
                    startActivity(intent1);
                }
            });
        }
    
    
        @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;
        }
        
    }
    public class MusicService extends Service{
    
        private MediaPlayer mp;
        private String TAG="Main";
        @Override
        public IBinder onBind(Intent arg0) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public void onCreate() {
            // TODO Auto-generated method stub
            super.onCreate();
            mp=MediaPlayer.create(this, R.raw.song2);
            Toast.makeText(this, "Service开始",Toast.LENGTH_LONG).show();
            Log.i(TAG, "MusicService onCreate被运行");
        }
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            // TODO Auto-generated method stub
            mp.start();
            Log.i(TAG, "MusicService onStartCommand被运行");
            return super.onStartCommand(intent, flags, startId);
        }
        @Override
        public void onDestroy() {
            // TODO Auto-generated method stub
            mp.stop();
            super.onDestroy();    
            Log.i(TAG, "MusicService onDestroy被运行");
        }
    }
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
          //  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//去掉title
           // setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //设置全屏
            setContentView(R.layout.video);
            video=(VideoView) findViewById(R.id.videoView1);
            MediaController mc=new MediaController(this);
            video.setMediaController(mc);
            btnGet=(Button) findViewById(R.id.buttonGETvideo);
            btnGet.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    video.setVideoURI(Uri.parse("/storage/sdcard/video1.mp4"));
                }
            });
            btnStar=(Button) findViewById(R.id.buttonStar);
            btnStar.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    video.start();
                }
            });
            btnstop=(Button) findViewById(R.id.buttonStop);
            btnstop.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    video.pause();
                }
            });
        }
    
    }

    运行结果:(截图)

     

     

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

        这个实验相对之前的实验来说比较难,还是要通过网络和请教同学才勉强完成了这次的实验,特别是实现播放视频,到最后还是没有实现。

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    falsk简单项目示例
    bootstrap基础
    flask models循环使用和migrate迁移脚本
    flask-script
    flask 钩子函数
    flask get和post请求使用
    flask SQLALchemy外键及约束
    flask SQLAlchemy
    关于虚拟机端口转发的一次理解和记录
    记录一次VMware与xshell远程链接的总结
  • 原文地址:https://www.cnblogs.com/woaiQ1314/p/5423522.html
Copyright © 2020-2023  润新知