zoukankan      html  css  js  c++  java
  • 实验六 在应用程序中播放音频和视频

    实验报告

    课程名称

    基于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这个文件夹了。这时候导入音频文件,运行程序,可以播放源文件中的音乐和本地文件系统中的音乐。无法播放视频,不知道问题出现在哪里。

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    Bundle 机制
    三次握手和四次挥手
    SparseArray
    ThreadLocal ——android消息机制handler在非主线程创建not called Looper.prepare() 错误的原因
    怎么去除重复代码
    ClassLoader
    android的四种线程池
    LeetCode#50 Pow(x, n)
    LeetCode#49 Anagrams
    LeetCode#48 Rotate Image
  • 原文地址:https://www.cnblogs.com/summer--liumengyun/p/5419266.html
Copyright © 2011-2022 走看看