Android录制和播放PCM数据

简介: PCM是android系统中的原生音频数据,那么我们如何录制和播放这个格式的byte[]数据呢?

PCM是android系统中的原生音频数据,那么我们如何录制和播放这个格式的byte[]数据呢?


录制


录制很简单,使用AudioRecord,注意read前一定要先startRecording


var record = AudioRecord(MediaRecorder.AudioSource.VOICE_COMMUNICATION, 16000, 
    AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 1280)
    //这几个参数分别是 数据来源、采样率、声道、格式和缓存buffer大小
record.startRecording()
Thread{
    while (true) {
        var data = ByteArray(640)
        record.read(data, 0, 640)
        ...
    }
}.start()
复制代码

停止录制调用stop函数,并一定要调用release函数进行资源释放


播放


播放也简单,使用AudioTrack,同样要先play起来再写数据

var track = AudioTrack(AudioManager.STREAM_VOICE_CALL, 16000, AudioFormat.CHANNEL_CONFIGURATION_MONO, 
    AudioFormat.ENCODING_PCM_16BIT, 1296, AudioTrack.MODE_STREAM)
    //这几个参数分别是 流类型(哪种声音)、采样率、声道、格式、缓存buffer大小、模式(静态数据还是流,byte[]是流)
track.play()
Thread{
    while (true) {
        ...
        track.write(result, 0, length)
    }
}.start()
复制代码

同样,播放完要stop并release释放资源


目录
相关文章
|
3月前
|
安全 API Android开发
Android网络和数据交互: 解释Retrofit库的作用。
Android网络和数据交互: 解释Retrofit库的作用。
39 0
|
4月前
|
XML 物联网 API
Android Ble蓝牙App(五)数据操作
Android Ble蓝牙App(五)数据操作
|
4月前
|
XML Java Android开发
Android Studio App开发中使用录音机、MediaRecorder录制音频和MediaPlayer播放音频讲解及实战(附源码)
Android Studio App开发中使用录音机、MediaRecorder录制音频和MediaPlayer播放音频讲解及实战(附源码)
74 0
|
2天前
|
Android开发 内存技术
Android 通过tinyalsa调试解决录制和播放音频问题
Android 通过tinyalsa调试解决录制和播放音频问题
18 1
|
9天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android's AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
10 0
|
9天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
9 0
|
4月前
|
XML 编解码 算法
Android开发音效中录制WAV音频和录制MP3音频的讲解及实战(超详细 附源码)
Android开发音效中录制WAV音频和录制MP3音频的讲解及实战(超详细 附源码)
68 0
|
23天前
|
XML Java Android开发
Android每点击一次按钮就添加一条数据
Android每点击一次按钮就添加一条数据
23 1
|
1月前
|
存储 Android开发 C++
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
34 3
|
2月前
|
JavaScript Java 数据安全/隐私保护
安卓逆向 -- POST数据解密
安卓逆向 -- POST数据解密
27 2