如何将录制的音频保存到内部存储器 android
How to save recorded audio into internal storage android
我多次尝试将录制的音频保存到内部存储器,但出现异常
Caused by: java.io.FileNotFoundException: /data/user/0/sepahtan.sepahtan/files/sound/1653658919164.3gp: open failed: ENOENT (No such file or directory)
private fun getFileName(): String {
val path = requireContext().filesDir.path
val file = File(path,"sound")
try {
file.mkdirs()
}catch (e:Exception){}
return "$file/${System.currentTimeMillis()}.3gp"
}
这个函数给我路径,我把它放到了
mediaPlayer.setDataSource(getFileName())
我已经研究了关于这个标题的所有问题
你需要的功能其实是这样的:
fun saveRecordedAudio(inputStream: InputStream) {
val outputStream: OutputStream = FileOutputStream(getFileName())
val buffer = ByteArray(1024)
var read: Int
var total: Long = 0
while (inputStream.read(buffer).also { read = it } != -1) {
outputStream.write(buffer, 0, read)
total += read.toLong()
}
inputStream.close()
outputStream.close()
}
在mediaPlayer.setDataSource(getFileName())
之前,实际上你需要使用上面的函数获取你录制文件的inputStream并保存到内部存储中。
您可以使用 Android SDK 包中的 AudioRecord API 录制音频。
请注意,对于不同的 Android 版本,保存到存储可能是一个挑战。
我多次尝试将录制的音频保存到内部存储器,但出现异常
Caused by: java.io.FileNotFoundException: /data/user/0/sepahtan.sepahtan/files/sound/1653658919164.3gp: open failed: ENOENT (No such file or directory)
private fun getFileName(): String {
val path = requireContext().filesDir.path
val file = File(path,"sound")
try {
file.mkdirs()
}catch (e:Exception){}
return "$file/${System.currentTimeMillis()}.3gp"
}
这个函数给我路径,我把它放到了
mediaPlayer.setDataSource(getFileName())
我已经研究了关于这个标题的所有问题
你需要的功能其实是这样的:
fun saveRecordedAudio(inputStream: InputStream) {
val outputStream: OutputStream = FileOutputStream(getFileName())
val buffer = ByteArray(1024)
var read: Int
var total: Long = 0
while (inputStream.read(buffer).also { read = it } != -1) {
outputStream.write(buffer, 0, read)
total += read.toLong()
}
inputStream.close()
outputStream.close()
}
在mediaPlayer.setDataSource(getFileName())
之前,实际上你需要使用上面的函数获取你录制文件的inputStream并保存到内部存储中。
您可以使用 Android SDK 包中的 AudioRecord API 录制音频。
请注意,对于不同的 Android 版本,保存到存储可能是一个挑战。