我有一个 Kotlin 应用。我正在尝试从设备中选择音频。这是我获取音频文件的方式:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 111 && resultCode == Activity.RESULT_OK && data != null) {
fileData = data.data!!
newAudio = fileData
}
}
问题出在这里:
val file = File(newAudio?.path!!)
val requestFile = RequestBody.create(MediaType.parse("audio/mpeg"), file)
val bodyFile = MultipartBody.Part.createFormData("file", file.name, requestFile)
RetrofitService().uploadAudio(bodyFile).enqueue(object : Callback<Any> {
@SuppressLint("LogNotTimber")
override fun onFailure(call: Call<Any>, t: Throwable) {
d("#Error", "${t.message}")
mainContent.visibility = VISIBLE
newAudioProgressBar.visibility = GONE
Toast.makeText(requireContext(), t.message, Toast.LENGTH_SHORT).show()
}
@SuppressLint("LogNotTimber")
override fun onResponse(call: Call<Any>, response: Response<Any>) {
navHostFragment.findNavController().navigate(R.id.myAudiosFragment)
Toast.makeText(requireContext(), "Audio uploaded successfully!", Toast.LENGTH_SHORT).show()
}
})
我进入了 logcat:D/#Error: /document/primary:Music/Track28.mp3: open failed: ENOENT (No such file or directory)
。该文件存在是因为我从我的设备中选择了它。我想这条路有问题。我被这个困住了。请帮助。为什么?