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

    实验报告

    课程名称

    基于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();
        }
    
    }

     

     

    运行截图:

                                                                         

     

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

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

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    《算法竞赛进阶指南》0x07贪心 POJ2054 color the tree树的缩点与合并
    《算法竞赛进阶指南》0x07 贪心 NOIP2012 vector模拟高精度计算
    《算法竞赛进阶指南》0x07贪心 POJ1328
    《算法竞赛进阶指南》0x07贪心 POJ3190
    《算法竞赛进阶指南》0x07贪心 POJ3614
    《算法竞赛进阶指南》0x06倍增 Acwing GeniusACM
    8.装饰模式(Decorator Pattern)
    7.桥接模式(Bridge Pattern)
    6.适配器模式(Adapter Pattern)
    5.原型模式(Prototype)
  • 原文地址:https://www.cnblogs.com/yewenzhao/p/5419576.html
Copyright © 2011-2022 走看看