Android录制和播放PCM数据
生活随笔
收集整理的這篇文章主要介紹了
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釋放資源
總結
以上是生活随笔為你收集整理的Android录制和播放PCM数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flutter入门:自定义dialog
- 下一篇: AS安装APK失败的两种情况