原文:http://www.yiibai.com/android/android_audio_capture.html

 

Android有一个内置的麦克风,通过它可以捕获音频和存储,或在手机进行播放。有很多方法可以做到这一点,但最常见的方法是通过MediaRecorder类。

Android提供MediaRecorder类录制音频或视频。为了使用MediaRecorder类,首先创建MediaRecorder类的一个实例。其语法如下给出。

MediaRecorder myAudioRecorder = new MediaRecorder();

现在设置源,输出编码格式和输出文件。下面的语法给出。

myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB); myAudioRecorder.setOutputFile(outputFile);

指定音频源和格式以及它的输出文件之后,我们就可以调用两种基本方法制备,开始记录音频。

myAudioRecorder.prepare();myAudioRecorder.start();

除了这些方法,还有其他的MediaRecorder类可以更好地控制音频和视频录制列出的方法。

Sr.No 方法及说明
1 setAudioSource()
这个方法规定的音频源要被记录
2 setVideoSource()
这个方法规定视频源将要记录
3 setOutputFormat()
该方法规定了音频格式中的音频将被存储
4 setAudioEncoder()
此方法指定要使用的音频编码器
5 setOutputFile()
该方法配置文件路径到其中的记录的音频将被存储
6 stop()
此方法停止记录处理
7 release()
当需要在记录器实例这种方法应被调用

例子

这个例子提供了MediaRecorder类捕获音频的示范,MediaPlayer类来播放录制的音频。

为了试验这个例子,需要在实际设备上运行此例子。

Steps 描述
1 使用Android Studio创建Android应用程序,并将其命名为:AudioCapture,创建这个项目,确保目标SDK编译在Android SDK的最新版本或使用更高级别的API。
2 修改src/MainActivity.java 文件添加AudioCapture代码
3 如果修改所需的布局XML文件res/layout/activity_main.xml 添加GUI组件
4 修改 res/values/string.xml文件,并添加必要的字符串组成部分
5 修改 AndroidManifest.xml 添加必要的权限。
6 运行应用程序并选择运行Android设备,并在其上安装的应用和验证结果。

这里是 src/com.yiibai.audiocapture/MainActivity.java 内容

package com.example.audiocapture; import java.io.File; import java.io.IOException; import android.media.MediaPlayer; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { private MediaRecorder myAudioRecorder; private String outputFile = null; private Button start,stop,play; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); start = (Button)findViewById(R.id.button1); stop = (Button)findViewById(R.id.button2); play = (Button)findViewById(R.id.button3); stop.setEnabled(false); play.setEnabled(false); outputFile = Environment.getExternalStorageDirectory(). getAbsolutePath() + "/myrecording.3gp";; myAudioRecorder = new MediaRecorder(); myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

转载于:https://www.cnblogs.com/mochaMM/p/5070872.html

更多相关文章

  1. Android 页面自动跳转方法(比如进入app的广告,通过Timer计时器,通过
  2. android开源代码编译方法
  3. Activity中那些需要重写的方法
  4. Android为什么会有65536的方法数量限制
  5. Android Studio ——Android 使用Pull方法解析XML文件的方法
  6. Android的raw下视频文件的读写-日记
  7. 成功解决 Android 下载中文文件名

随机推荐

  1. Jenkins 之 安装部署与汉化
  2. ClearLinux包管理器swupd使用入门
  3. Exa – 替代ls命令的超好用工具
  4. 教你 2 种从 Linux 终端下载文件的方法
  5. 第四届大数据科学与工程国际会议(2019)
  6. 面向边缘计算的资源优化技术研究进展
  7. js之留言板与数组字符串函数
  8. Go微服务入门到容器化实践,落地可观测的微
  9. Server Core App Compatibility
  10. 不产生第三个临时变量的前提交换两组数据