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

    实验报告

    课程名称

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

    实验日期

    2016.4.15

    实验项目名称

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

    实验地点

    S30010

    实验类型

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

    学  时

    2

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

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

    实验要求:

    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被运行");

        }

    }

    运行结果:(截图)

     

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

        此次实验学会了如何在安卓项目中播放视频和音乐,知道许多启动的动画其实是可以直接用视频来展示的。非常方便。

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    从Oracle提供两种cube产品说开
    Sql Server DWBI的几个学习资料
    Unload Oracle data into text file
    初学Java的几个tips
    我常用的Oracle知识点汇总
    benefits by using svn
    如何在windows上使用putty来显示远端linux的桌面
    building commercial website using Microsoft tech stack
    Understand Thread and Lock
    Update google calendar by sunbird
  • 原文地址:https://www.cnblogs.com/jieru/p/5411929.html
Copyright © 2011-2022 走看看