我在 FFmpeg 库中工作,在那里我开发了基于麦克风的读写音频数据,在那里我遇到了处理一些音频数据的挑战。但我不想将文件存储为输出流或其他东西,因为它会增加额外的延迟。
这是我使用的代码
implementation 'com.arthenica:mobile-ffmpeg-full:4.2.2.LTS'
private fun processAudioAsChipmunk(audioData: ShortArray, record: AudioRecord): ShortArray {
val sampleRate = record.sampleRate
val channels = record.channelCount
val filter = "asetrate=2*${sampleRate},aresample=48000,atempo=2"
val outputData = audioData
val cmd = arrayOf(
"-y",
"-i",
fileName1, // here input filepath is passed, i want it to be ByteArray(audioData)
"-af",
"asetrate=22100,atempo=1/2",
fileName2 //here output filepath is passed, i want it to be ByteArray(outputData)
)//Chipmunk
FFmpeg.execute(cmd)
return outputData
}
现在我想读写 audioData 而不存储和使用它作为文件名。
下面的代码显示了我用来读写音频数据的代码
read = record!!.read(audioData, 0, minBuffer) //AudioRecord
val processedAudioData = processAudioAsChipmunk(audioData, record!!) // Here!
write = player!!.write(processedAudioData, 0, read) //AudioTrack