码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-04-22 00:58:52      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

实验报告

课程名称

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

实验日期

4月15日

实验项目名称

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

实验地点

S3010

实验类型

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

学    时

 

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

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

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

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

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

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

(1)PC机

(2)操作系统:Windows XP

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

三、实验内容及步骤

一、新建openvideo_main,MusicService的类和openvideo.xml                               

技术分享

二、导入歌曲与视频到本地手机

    技术分享

三、完善关键代码

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

 

代码:

MusicService关键代码:

public class MusicService extends Service {

    private String TAG="Main";

    MediaPlayer mp=new MediaPlayer();

    @Override

    public IBinder onBind(Intent arg0) {

        // TODO Auto-generated method stub

        return null;

    }

    @Override

    public void onCreate() {

        super.onCreate();//初始化MediaPlayer对象,准备播放音乐,音乐文件放在文件夹/res/raw中

          String sdCard=Environment.getExternalStorageDirectory().getPath();

        try {

            mp.setDataSource(sdCard+File.separator+"bjmusic.mp3");

        } catch (IllegalArgumentException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (SecurityException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IllegalStateException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        try {

            mp.prepare();

        } catch (IllegalStateException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        }

    public int onStartCommand(Intent intent, int flags, int startId) {

        // TODO Auto-generated method stub

        //开始播放音乐

        mp.start();

        return super.onStartCommand(intent, flags,   startId);   

    }

    @Override

    public void onDestroy() {

    super.onDestroy();

    //停止播放音乐

    mp.stop();

        }

 

Openvideo.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"   >

    <SurfaceView

        android:id="@+id/VView1"

        android:layout_width="match_parent"

        android:layout_height="288dp"  

        android:keepScreenOn="true"/>

</LinearLayout>

 

 

 

Openvideo_main关键代码

public class openvideo_main extends Activity{

    private SurfaceView sv;

    private MediaPlayer vi;

    @SuppressLint("SdCardPath") @Override

    protected void onCreate(Bundle savedInstanceState) {

        // TODO Auto-generated method stub

        super.onCreate(savedInstanceState);

        setContentView(R.layout.openvideo);

        vi=new MediaPlayer();

        sv=(SurfaceView)findViewById(R.id.VView1);

        //sv.getHolder().setKeepScreenOn(true);   

        //String sdCard=Environment.getExternalStorageDirectory().getPath();

        try {

            vi.setDataSource("/sdcard/Movies/vvv.mp4");

            vi.setDisplay(sv.getHolder());

            vi.prepare();

            vi.start();

        } catch (IllegalArgumentException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (SecurityException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IllegalStateException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

Music_main中播放音乐关键代码

who_group.setOnCheckedChangeListener(new   RadioGroup.OnCheckedChangeListener() {

           

            @Override

            public void onCheckedChanged(RadioGroup arg0,   int arg1) {

                // TODO Auto-generated method stub

                Intent intent=new Intent(music_main.this, MusicService.class);

                if (arg1==R.id.opmusic) {

                    startService(intent);

 

                }else if(arg1==R.id.clomusic){

                    stopService(intent);

                }

            }

        });

    }

 

运行结果:(截图)

点击MainActivity系统菜单中的设置

    技术分享

点击帮助,然后点击数独视频教学

    技术分享

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

    音乐可以通过service播放,但视频播放不了,一直黑屏,找不到错误,根据书本上的参考做的,单依然播放不了视频,暂时解决不了这个问题。还有待研究。

实验评语

 

实验成绩

 

指导教师签名:              年   月   日

           

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

标签:

原文地址:http://www.cnblogs.com/lijiahui/p/5419602.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!