返回列表 发新帖

android采集语音_Android

[复制链接]

7

主题

23

帖子

23

积分

新手上路

Rank: 1

积分
23
发表于 2024-10-24 22:35:30  | 显示全部楼层 | 阅读模式
在Android中,采集语音主要涉及到使用Android的MediaRecorder类,下面是详细的步骤和代码示例:

zbhjs0otz2ay4mv.png

zbhjs0otz2ay4mv.png


(图片来源网络,侵删)
1. 添加必要的权限
你需要在你的AndroidManifest.xml文件中添加录音的权限:



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
    }
}
注意:以上代码仅作为示例,实际使用时需要处理异常,以及考虑录音时长、录音状态等问题。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表