Android录制和播放PCM数据
Posted BennuCTech
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android录制和播放PCM数据相关的知识,希望对你有一定的参考价值。
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释放资源
关注公众号:BennuCTech,获取更多干货!
以上是关于Android录制和播放PCM数据的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Android 中播放使用 AudioRecord 录制的 pcm 文件
Android音频处理——通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能