在Android中,采集语音主要涉及到使用Android的MediaRecorder类,下面是详细的步骤和代码示例:
(图片来源网络,侵删)1. 添加必要的权限
你需要在你的AndroidManifest.xml文件中添加录音的权限:
<usespermission android:name="android.permission.RECORD_AUDIO" /> <usespermission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2. 初始化MediaRecorder对象
在你的Activity或Service中,你需要创建一个MediaRecorder对象,并设置其音频源、输出格式和输出文件:
MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(audioFile.getAbsolutePath());
3. 准备录音
调用MediaRecorder的prepare()方法来准备录音:
recorder.prepare();
4. 开始录音
调用MediaRecorder的start()方法开始录音:
recorder.start();
5. 停止录音
当你想停止录音时,你可以调用stop()方法:
recorder.stop();
6. 释放资源
别忘了释放MediaRecorder对象以释放系统资源:
recorder.release(); recorder = null;
完整代码示例:
import android.media.MediaRecorder; import java.io.IOException; public class MainActivity extends AppCompatActivity { private MediaRecorder recorder; private String audioFile; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); audioFile = getExternalFilesDir(null).getAbsolutePath() + "/myrecording.3gp"; recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(audioFile); try { recorder.prepare(); } catch (IOException e) { e.printStackTrace(); } recorder.start(); // Recording starts // ... later on recorder.stop(); // Recording stops recorder.release(); // Release resources } }
注意:以上代码仅作为示例,实际使用时需要处理异常,以及考虑录音时长、录音状态等问题。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。