zoukankan      html  css  js  c++  java
  • 实验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();
                }
            });
        }
    
    }

    运行结果:(截图)

     

     

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

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

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    将Nginx添加到windows服务中
    springboot使用redis管理session
    GIT常用命令
    阻止360、谷歌浏览器表单自动填充
    谈谈对Spring IOC的理解
    同一个Nginx服务器同一端口配置多个代理服务
    LeetCode 653. Two Sum IV
    109. Convert Sorted List to Binary Search Tree(根据有序链表构造平衡的二叉查找树)
    108. Convert Sorted Array to Binary Search Tree(从有序数组中构造平衡的BST)
    LeetCode 236. Lowest Common Ancestor of a Binary Tree(二叉树求两点LCA)
  • 原文地址:https://www.cnblogs.com/woaiQ1314/p/5423522.html
Copyright © 2011-2022 走看看