Android:多媒体应用开发

一、音频

使用MediaPlayer类

1、定义

MediaPlayer是Android用来音频/视频文件或流播放的类

2、使用MediaPlayer类播放音频步骤

首先创建MediaPlayer类对象,用来装载音频文件。有两种方法,一是create(Context context,Uri uri)或create(Context context,intresid);二是调用无参的构造方法,然后调用setDataSource(),prepare()即可。

其次使用start(),pause(),stop()来开始、暂停和停止音频播放。

使用SoundPool类

与MediaPlayer的比较

  优点 缺点
SoundPool  只能播放短促的音频

 延迟长,且占用资源多

不支持同时播放多个音频

MediaPlayer  延迟短,且占用资源少

支持同时播放多个音频

 多种音频播放

1、定义:

SoundPool(音效池):管理多个短促的音效,播放按键音或游戏提示音。

2、使用SoundPool类播放音频步骤

创建SoundPool对象调用load()方法加载音频,调用play()方法播放音频。

 二、视频

使用VideoView播放

使用VideoView类播放视频步骤

在xml中添加VideoView组件,使用setVideoPath(),setVideoURI()方法来加载视频,调用start(),pause(),stop()来开始,暂停,停止播放。

使用MediaController类

可以在视频底部添加播放条,提供进度快进等功能。

 使用MediaPlayer和SurfaceView播放

使用MediaPlayer和SurfaceView类播放视频步骤:

定义SurfaceView组件,创建MediaPlayer对象加载视频,通过setDisplay()方法将视频输出到SurfaceView,最后调用start(),pause(),stop()来开始,暂停,停止播放。

        SurfaceView surfaceView = findViewById(R.id.surfaceView);//获取在布局文件中定义的SurfaceView
//        获取把当前surfaceView和视频进行关联的SurfaceHolder对象
        SurfaceHolder surfaceHolder = surfaceView.getHolder();
        MediaPlayer mediaPlayer1 = new MediaPlayer();//无参构造创建对象
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置多媒体类型为音频流
        mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {//监听视频播放完毕
                Toast.makeText(MainActivity.this,"视频播放完毕",Toast.LENGTH_SHORT).show();
            }
        });

三、控制摄像头拍照

控制摄像头拍照的步骤

1、调用camera类的open()方法打开摄像头

2、通过Camera.Parameters类设置拍照参数

3、然后startPriview()预览拍照画面,takePicture()进行拍照,stopPriview()结束预览,release()释放摄像头资源。

四、控制摄像头录制视频

步骤:

1、创建MediaRecord对象,通过setAudioSource()设置声音来源,通过setOutputFormat()设置输出文件的格式,设置音频视频参数,通过setOutputFile()设置文件保存位置,通过setPreviewDisplay()设置显示预览的SurfaceView。

2、然后调用prepare()和start()方法开始录制视频,stop()停止录制,release()方法释放资源。

posted @ 2020-02-09 20:27  大雪初晴丶  阅读(305)  评论(0编辑  收藏  举报