[英]How to save recorded audio into internal storage android
我多次嘗試將錄制的音頻保存到內部存儲中,但出現異常
引起:java.io.FileNotFoundException:/data/user/0/sepahtan.sepahtan/files/sound/1653658919164.3gp:打開失敗:ENOENT(沒有這樣的文件或目錄)
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 版本,保存到存儲可能是一個挑戰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.