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

    实验报告

    课程名称

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

    实验日期

    2016.4.15

    实验项目名称

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

    实验地点

    S30010

    实验类型

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

    学  时

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

    实验目的:实现在应用程序中处理音频和视频。

    实验要求:

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

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

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

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

    (1)PC机

    (2)操作系统:Windows XP

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

    三、实验内容及步骤

    1)新建工程

     2)修改布局文件main.xml

     

    3)完善Activity类

     

    /***

     * 这个类主要用来测试调用Andriod.media.MediaPlayer包里面的函数实现音乐播放的功能,

     * 分别播放了工程中资源文件中的音乐文件、本地文件系统中的文件,以及网络上的音乐;

     * 视频播放功能,使用了VideoView控件;

     * 代码中指定了本地文件系统中音频和视频文件的路径,在测试本程序前请按照代码中的路径和音频、视频文件的名称在手机中添加文件;

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

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

     

    代码:

    musicandvideo_layout.xml

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical" >

        <Button

            android:id="@+id/playSourceMusic"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:text="播放源文件中的音乐" />

        <Button

            android:id="@+id/playLocalMusic"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:text="播放本地文件系统中的音乐" />

        <Button

            android:id="@+id/playOnlineMusic"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:text="播放网络上的音乐" />

        <LinearLayout

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:orientation="horizontal" >

            <Button

                android:id="@+id/stopPlay"

                android:layout_width="112dp"

                android:layout_height="wrap_content"

                android:text="停止播放" />

            <Button

                android:id="@+id/playVideo"

                android:layout_width="108dp"

                android:layout_height="wrap_content"

                android:layout_weight="0.67"

                android:text="播放视频" />

            <Button

                android:id="@+id/exitPlay"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="退出" />

        </LinearLayout>

        <VideoView

            android:id="@+id/video"

            android:layout_width="match_parent"

            android:layout_height="wrap_content" />

    </LinearLayout>

    MusicAndVideoPlay:

    public class MusicAndVideoPlay extends Activity {

       private Button playSourceMusicbt, playLocalMusicbt, playOnlineMusicbt,stopPlaybt,

              playVideobt, exitPlaybt;

       private MediaPlayer myPlayer1 = new MediaPlayer();

       private VideoView video;

       protected void onCreate(Bundle savedInstanceState) {

           super.onCreate(savedInstanceState);

           setContentView(R.layout.musicandvideo_layout);

           playSourceMusicbt = (Button) findViewById(R.id.playSourceMusic);

           playLocalMusicbt = (Button) findViewById(R.id.playLocalMusic);

           playOnlineMusicbt=(Button) findViewById(R.id.playOnlineMusic);

           stopPlaybt = (Button) findViewById(R.id.stopPlay);

           playVideobt = (Button) findViewById(R.id.playVideo);

           exitPlaybt = (Button) findViewById(R.id.exitPlay);

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

          

           playSourceMusicbt.setOnClickListener(new MyClickListener());

           playLocalMusicbt.setOnClickListener(new MyClickListener());

           stopPlaybt.setOnClickListener(new MyClickListener());

           playVideobt.setOnClickListener(new MyClickListener());

           exitPlaybt.setOnClickListener(new MyClickListener());

           

       }

       class MyClickListener implements OnClickListener {

           @Override   

            public void onClick(View v) { 

               // TODO Auto-generated method stub   

               switch (v.getId()) {     

               case R.id.playSourceMusic:

                   startService(new Intent(MusicAndVideoPlay.this, MusicService.class));

                   break;

               case R.id.playLocalMusic:

                   try

                      {

                         if(myPlayer1.isPlaying()==true)

                            {

                                /*把 MediaPlayer重设*/

                                myPlayer1.reset();

                            }

                         /*设定 MediaPlayer读取SDcard的档案*/

                        myPlayer1.setDataSource(Environment.getExternalStorageDirectory().getPath()+"/nan.mp3");

                         myPlayer1.prepare();

                 

                         /*把 MediaPlayer开始播放*/

                         myPlayer1.start();

          

                      }catch (Exception e) {

                         // TODO: handle exception

                     }

                   break

               case R.id.playOnlineMusic:

                   if(myPlayer1.isPlaying()==true)

                     {

                         /*把 MediaPlayer重设*/

                         myPlayer1.reset();

                     }

                  /*设定 MediaPlayer读取SDcard的档案*/

                  myPlayer1.create(MusicAndVideoPlay.this, Uri.parse("http://www.mingribook.com/sound/bg.mp3"));

          

                  /*把 MediaPlayer开始播放*/

                  myPlayer1.start();

                   break;

               case R.id.stopPlay:

                     if(myPlayer1.isPlaying()==true)

                        {

                            /*把 MediaPlayer重设*/

                            myPlayer1.stop();

                        }

                   break;    

               case R.id.playVideo

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

                   MediaController mc=new MediaController(MusicAndVideoPlay.this);

                   if(file.exists()){

                      video.setVideoPath(file.getAbsolutePath());

                      video.setMediaController(mc);

                      video.requestFocus();

                 

                   try{

                     video.start();

                   }catch(Exception e){

                      

                   }

                   video.setOnCompletionListener(new OnCompletionListener() {

                     @Override

                     public void onCompletion(MediaPlayer arg0) {

                         // TODO Auto-generated method stub

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

                     }

                  });

              }else{

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

              }

                   break;    

               case R.id.exitPlay

                   break;    

              default:      

                  break;   

              }   

           }  

          

           }

      

    }

    MusicService:

    public class MusicService extends Service {

    //系统使用MediaPlayer播放音乐,定义对象mp

    private MediaPlayer mp;

    private String TAG="Main";

    @Override

    public IBinder onBind(Intent intent) {

    // TODO Auto-generated method stub

    return null;

        }

    @Override

    public void onCreate() {

    super.onCreate();

    //初始化MediaPlayer对象,准备播放音乐,音乐文件放在文件夹/res/raw中

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

            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() {

    super.onDestroy();

    //停止播放音乐

    mp.stop();

            Log.i(TAG, "MusicService onDestroy被运行");

        }

    }

    运行结果:(截图)

     

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

        此次实验学会了如何在安卓项目中播放视频和音乐,可以优化游戏界面设计,直接使用,很方便

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    【计算机网络】第三章 数据链路层
    【网页设计】第四周 JavaSript
    【计算机网络】第二章 物理层
    【计算机网络】第一章 概述
    [寒假学习]ps知识
    [蓝桥杯]算法提高 GPA
    用Java模拟游戏重力的实现(弹跳)
    【狼叔分享】狼叔20年上半年故事分享
    旷视教会我如何安装tensorflow环境|这才是真正的pip install tensorflow
    大学逆袭的三步骤:大三实习、大四秋招、大四春招
  • 原文地址:https://www.cnblogs.com/luowenq/p/5419904.html
Copyright © 2011-2022 走看看