MediaRecorder与MediaPlayer步骤

MediaRecorder音频录制步骤:

1    创建MediaRecorder对象

MediaRecorder mr=new MediaRecorder();

2    设置录音的来源

mr.setAudioSource(MediaRecorder.AudioSource.MIC);//一般使用麦克风

3    设置输出格式

mr.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);

4    设置编码格式

mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

    设置编码位率

//mr.setAudioEncodeingBitRate(int bitRate);

    设置采样率

//mr.setAudioAudioSamling(int samplingRate);

5    设置保存位置

mr.setOutputFile("/sdcard/recorder.amr");

6    录制准备

mr.prepare();

7 开始录制

mr.start();

录制完成之后

8 停止录制

mr.stop();

9 释放资源

mr.release();


MediaPlayer音频播放步骤:

1 创建MediaPlayer对象MediaPlayer mp=new MediaPlayer();

或者直接创建制定文件 MediaPlayer mp=MediaPlayer.create(context,R.raw.music);//如果采用此方法创建则可以跳过2、3两个步骤

2 设置播放文件 mp.setDataSource("/sdcard/recorder.amr");

//参数可以为文件路径("/sdcard/music.mp3")、网络URL("http://www.../music.mp3")、res/raw下面的音频文件(context,R.raw.music)等

3 播放准备(同步) mp.prepare();

播放准备(异步)mp.prepareAsunc();

4 开始播放 mp.start();

暂停播放//mp.pause();

5 停止播放 mp.stop();

6 释放资源 mp.release();


TIP:

定位 mp.seekTo(int);

取得当前位置 mp.getCurrentPosition();

取得总长 mp.getDuration();

当需要用播放定位时,调用mp.seekTo(int position)函数不知道position应该是多少。由于FPS的不同,给固定的int值很不准确。

于是乎,想到了用百分比来确定位置。我们可以调用mp.getDuration();函数来获取该资源的总长度,该长度官方定义为毫秒但是应该不准确。不过它的值与seekTo函数中的int是对应的。


比如要定义到15%的位置:

int position=(int)(mp.getDuration()*0.15);

mp.seekTo(position);

mp.start();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值