一、音频
使用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()方法释放资源。