Kotlin Voice Record上传覆盖Firebase

你好guyi写一些代码,以获取音频记录保存在firebase。 它的工作,但始终保存同名,所以导致覆盖。 我怎样才能解决这个问题 ?

mFileName = externalCacheDir!!.absolutePath mFileName += "/recorded_audio.3gp" private fun startRecording() { mRecorder = MediaRecorder() mRecorder!!.setAudioSource(MediaRecorder.AudioSource.MIC) mRecorder!!.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP) mRecorder!!.setOutputFile(mFileName) mRecorder!!.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB) try { mRecorder!!.prepare() } catch (e: IOException) { Log.e(LOG_TAG, "prepare() failed") } mRecorder!!.start() } private fun stopRecording() { mRecorder!!.stop() mRecorder!!.release() mRecorder = null uploadAudio() } private fun uploadAudio() { val filepath = mStorage!!.child("Audio").child("new_audio.3gp") val uri = Uri.fromFile(File(mFileName!!)) filepath.putFile(uri).addOnSuccessListener { } } companion object { private val LOG_TAG = "Record_log" } 

问题是你总是使用相同的文件名:

 mFileName = externalCacheDir!!.absolutePath mFileName += "/recorded_audio.3gp" 

如果您生成一个随机UUID(或类似),如:

 mFileName = externalCacheDir!!.absolutePath mFileName += "/" + UUID.randomUUID().toString() + ".3gp" 

你不会再覆盖文件。