Slide 15
Slide 15 text
音声データ読込
15 / 45
fun startRecording() {
var bufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE, CHANNEL_IN, ENCODE_FORMAT)
val audioRecorder = AudioRecord(AUDIO_SOURCE, SAMPLE_RATE, CHANNEL_IN, ENCODE_FORMAT, bufferSize)
//
音声データをいくつずつ処理するか( = 1
フレームのデータ数)
audioRecord.positionNotificationPeriod = SAMPLE_RATE / 2
//
録音された音声データを書き込む配列
val audioBuffer = ShortArray(bufferSize / 2)
//
コールバックを指定
audioRecord.setRecordPositionUpdateListener(object : AudioRecord.OnRecordPositionUpdateListener {
//
フレームごとの処理
override fun onPeriodicNotification(recorder: AudioRecord) {
recorder.read(audioBuffer, 0, SAMPLE_RATE / 2) //
音声データ読込
}
override fun onMarkerReached(recorder: AudioRecord) {}
})
audioRecord.startRecording()
}