Android系统的录音功能MediaRecorder
来源:互联网 发布:mac safari无痕模式 编辑:程序博客网 时间:2024/05/21 17:01
MediaRecorder是Android系统自带的一种非常强大的音频录制的控件,可以录制声音,也可以通过调用Camera达到录制视频的效果。MediaRecorder包含了Audio和video的记录功能,在Android的界面上,Music和Video两个应用程序都是调用MediaRecorder实现的。MediaRecorder在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaRecorder程序,上层还包含了进程间通讯等内容,这种进程间通讯的基础是Android基本库中的Binder机制。
1.MediaRecorder方法说明:
2、MediaRecorder中音视频编码格式和资源说明:
- 视频编码格式:default,H263,H264,MPEG_4_SP
- 获得视频资源:default,CAMERA
- 音频编码格式:default,AAC,AMR_NB,AMR_WB
- 获得音频资源:defalut,camcorder,mic,voice_call,voice_communication,voice_downlink,voice_recognition, voice_uplink
- 输出方式:amr_nb,amr_wb,default,mpeg_4,raw_amr,three_gp
例如:
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置音频源为麦克风recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//设置声音格式为3gprecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置编码为AMRrecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //设置视频源为Camerarecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); //设置视频输出格式为MP4recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);//设置视频编码recorder.setOutputFile(filePath); //设置视频输出路径4、音频文件的录制:
1、在Mainfest中添加权限:
<!--网络权限 --><uses-permission android:name="android.permission.INTERNET"/><!--网sdcard卡写入权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!--录音权限 --><uses-permission android:name="android.permission.RECORD_AUDIO"/><!--在SDCard中创建与删除权限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>2、Xml文件的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" tools:context="com.example.wls.mediarecoder.MainActivity"> <Button android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始录音" android:onClick="btnClick"/> <Button android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="暂停录音" android:onClick="btnClick"/> <Button android:id="@+id/palyer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="播放录音" android:onClick="btnClick"/></LinearLayout>3、程序的实现:
public class MainActivity extends AppCompatActivity { private MediaRecorder mRecoder; private MediaPlayer mMediaPlayer; private String FileName = null; private Button mButtonPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFormat(PixelFormat.TRANSLUCENT);//让界面横屏 requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉界面标题 //重新设置界面大小 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); //设置sdcard的路径 FileName = Environment.getExternalStorageDirectory().getAbsolutePath(); FileName += "/audiorecordtest.3gp"; init(); } private void init() { //new出录音对象 mRecoder = new MediaRecorder(); //设置Audio的音频源为麦克风 mRecoder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置Audio录音的音频模式(输出格式) // mRecoder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // mRecoder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); mRecoder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB); //设置Audio录制音频的编码为AMR mRecoder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置录制的音频的存储路径 mRecoder.setOutputFile(FileName); mMediaPlayer = new MediaPlayer(); mButtonPlayer = (Button) findViewById(R.id.palyer); mButtonPlayer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { mMediaPlayer.setDataSource(FileName); mMediaPlayer.prepare(); mMediaPlayer.start(); } catch (IOException e) { e.printStackTrace(); } } }); } public void btnClick(View view){ switch (view.getId()){ case R.id.start: try { mRecoder.prepare(); mRecoder.start(); } catch (IOException e) { e.printStackTrace(); } break; case R.id.stop: mRecoder.stop();//停止录制 mRecoder.release();//释放资源 break; } }}这样只要点击播放按钮就可以播放刚刚录制的声音文件了。
1 0
- Android系统的录音功能MediaRecorder
- Android使用MediaRecorder实现录音功能
- Android使用MediaRecorder实现录音功能
- Android MediaRecorder实现暂停断点录音功能
- Android MediaRecorder实现暂停断点录音功能
- Android MediaRecorder实现暂停断点录音功能
- Android MediaRecorder实现暂停断点录音功能
- Android MediaRecorder实现暂停断点录音功能
- Android MediaRecorder实现暂停断点录音功能
- 使用MediaRecorder类实现录音的功能
- Android简单的利用MediaRecorder进行录音
- Android简单的利用MediaRecorder进行录音
- Android简单的利用MediaRecorder进行录音
- android录音 MediaRecorder类的使用简介
- android 通过MediaRecorder实现简单的录音
- Android简单的利用MediaRecorder进行录音
- Android--MediaRecorder录音录像
- android MediaRecorder录音
- 多重继承
- java反射
- 【CodeForces】257C - View Angle(计算几何)
- selenium处理复选框radio
- ASP.NET中cookie与Fiter实现简单登陆,AllowAnonymous匿名登陆
- Android系统的录音功能MediaRecorder
- spring+springMVC+jQuery+Ajax+Mysql环境搭建实例
- React native for Android 初步实践[原理剖析]
- C/C++代码命名和格式规范
- js 实现 AOP
- Session 'app': Error Launching activity
- Android的消息机制
- Java中Vector和ArrayList的区别
- 矩阵的求和和求积