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

时间:2022-07-20 05:53:30

实验报告

课程名称

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

实验日期

2015.4.16

实验项目名称

 

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

 

实验地点

S30010

实验类型

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

学    时

2

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

 

1. 实现在应用程序中处理音频和视频。

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

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

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

 

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

(1)PC机

(2)操作系统:Windows XP

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

三、实验内容及步骤

1)新建工程

 2)修改布局文件main.xml

3)完善Activity类

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

 

代码:

   

package com.example.yemediapalyer;

import java.io.File;

import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;

import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.MediaController;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.VideoView;

public class MainActivity extends Activity {
//    private VideoView video=(VideoView) findViewById(R.id.videoView1);
    private MediaPlayer player; // MediaPlayer对象
    private File file; // 要播放的音频文件
    private TextView hint; // 声明显示提示信息的文本框
    private MediaPlayer mediaplayer = new MediaPlayer();
//    private MediaPlayer player1 = MediaPlayer.create(this, Uri.parse("http://www.mingribook.com/soung/bg.mp3"));
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button button1 = (Button) findViewById(R.id.button2); // 获取SD中播放按钮
        final Button pausebtn = (Button) findViewById(R.id.pausebtn); // 获取工程中播放按钮
//        final Button button4 = (Button) findViewById(R.id.button4); // 获取播放视频
//        final Button button3 = (Button) findViewById(R.id.button3); // 获取网络中播放按钮
        final Button stopbtn = (Button) findViewById(R.id.stopbtn); // 获取“停止”按钮
        hint = (TextView) findViewById(R.id.hint); // 获取用户显示提示信息的文本框
        file = new File("/sdcard/ding.wav"); // 获取要SD中播放的文
        pausebtn.setOnClickListener(new OnClickListener() {
        
         @Override
         public void onClick(View arg0) {
         // TODO Auto-generated method stub
         mediaplayer=MediaPlayer.create(MainActivity.this, R.raw.chimes);
         mediaplayer.start();
         hint.setText("正在播放工程中音乐");
         }
         });
        if (file.exists()) {
            mediaplayer = MediaPlayer.create(MainActivity.this,
                    Uri.parse(file.getAbsolutePath()));

        } else {
            hint.setText("要播放的文件不存在!");
        }

        if (file.exists()) { // 如果文件存在
            player = MediaPlayer
                    .create(this, Uri.parse(file.getAbsolutePath())); // 创建MediaPlayer对象
        } else {
            hint.setText("要播放的音频文件不存在!");
            button1.setEnabled(false);
            return;
        }
        // 为MediaPlayer对象添加完成事件监听器
        player.setOnCompletionListener(new OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {
                try {
                    player.reset();
                    player.setDataSource(file.getAbsolutePath()); // 重新设置要播放的音频
                    player.prepare(); // 预加载音频
                    player.start(); // 开始播放
                    hint.setText("正在播放SD中音频...");
                } catch (Exception e) {
                    e.printStackTrace(); // 输出异常信息
                }// 开始播放音乐
            }
        });


        button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                try {
                    player.reset();
                    player.setDataSource(file.getAbsolutePath()); // 重新设置要播放的音频
                    player.prepare(); // 预加载音频
                    player.start(); // 开始播放
                    hint.setText("正在播放SD中音频...");
                } catch (Exception e) {
                    e.printStackTrace(); // 输出异常信息
                }// 开始播放音乐

            }
        });
        // 为“播放”按钮添加单击事件监听器
//        button4.setOnClickListener(new OnClickListener() {
//
//            @Override
//            public void onClick(View v) {   
//                File file1=new File("/sdcard/1.wmv");    //获取SD卡上要播放的文件
//                MediaController mc=new MediaController(MainActivity.this);
//                if(file1.exists()){    //判断要播放的视频文件是否存在
//                video.setVideoPath(file1.getAbsolutePath());    //指定要播放的视频
//                video.setMediaController(mc);    //设置VideoView与MediaController相关联
//                video.requestFocus();    //让VideoView获得焦点
//                try {
//                    video.start();    //开始播放视频
//                } catch (Exception e) {
//                    e.printStackTrace();    //输出异常信息
//                }
//                //为VideoView添加完成事件监听器
//                video.setOnCompletionListener(new OnCompletionListener() {
//                    
//                    @Override
//                    public void onCompletion(MediaPlayer mp) {
//                        Toast.makeText(MainActivity.this, "视频播放完毕!", Toast.LENGTH_SHORT).show();    //弹出消息提示框显示播放完毕
//                    }
//                });
//            }else{
////                Toast.makeText(this, "要播放的视频文件不存在", Toast.LENGTH_SHORT).show();    //弹出消息提示框提示文件不存在
//            }}
//        });
//        button3.setOnClickListener(new OnClickListener() {
//
//            @Override
//            public void onClick(View v) {
//                try {
//                    player1.reset();
//                    player1.setDataSource(file.getAbsolutePath()); // 重新设置要播放的音频
//                    player1.prepare(); // 预加载音频
//                    player1.start(); // 开始播放
//                    hint.setText("正在播放网络中音频...");
//                } catch (Exception e) {
//                    e.printStackTrace(); // 输出异常信息
//                }// 开始播放音乐
//
//            }
//        });

        // 为“停止”按钮添加单击事件监听器
        stopbtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                player.stop(); // 停止播放;
                mediaplayer.pause();
                hint.setText("停止播放音频...");

            }
        });
    }

    @Override
    protected void onDestroy() {
        if (player.isPlaying()) {
            player.stop(); // 停止音频的播放
        }
        player.release(); // 释放资源
        super.onDestroy();
    }

}

 

 

 

运行截图:

 

                                                                     

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

 

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

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

实验评语

 

实验成绩

 

指导教师签名:              年   月   日