有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

下载时,java无法获取音频进度条

我正在创建一个kotlin应用程序。我是科特林的新手。我在我的应用程序中下载音频。我有以下用于下载音频的代码:

coroutineScope.launch(Dispatchers.Default) {
    val audioOutStream: OutputStream
    val imageOutStream: OutputStream

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
        val values = ContentValues()
        val imageValues = ContentValues()
        imageValues.put(MediaStore.Audio.Media._ID, "${audio.writer?._id}")
        values.put(MediaStore.Audio.Media._ID, "${audio._id}")
        values.put(MediaStore.Audio.Media.DISPLAY_NAME, "${audio.title}")
        values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/mpeg")
        values.put(MediaStore.Audio.Media.DATE_ADDED, audio.createdAt)
        values.put(MediaStore.Audio.Media.TITLE, audio.writer ? .name)
        values.put(MediaStore.Audio.Media.WRITER, audio.writer ? .name)
        values.put(MediaStore.Audio.Media.ARTIST_ID, audio.writer ? ._id)
        values.put(MediaStore.Audio.AudioColumns.TITLE, audio.description)
        values.put(
            MediaStore.Audio.Media.RELATIVE_PATH,
            "${Environment.DIRECTORY_MUSIC}/Soundy/"
        )
        imageValues.put(
            MediaStore.Images.Media.RELATIVE_PATH,
            "${Environment.DIRECTORY_DCIM}/Soundy/"
        )
        val uri = context.contentResolver.insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values)
        val imageUri = context.contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageValues)
        audioOutStream = context.contentResolver.openOutputStream(uri!!) !!
            imageOutStream = context.contentResolver.openOutputStream(imageUri!!) !!
    } else {
        val audioPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).toString() + "/Soundy/"
        val imagePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString() + "/Soundy/"
        val audioFile = File(audioPath, audio.title!!)
        val imageFile = File(imagePath, audio.writer ? ._id!!)
        audioOutStream = FileOutputStream(audioFile)
        imageOutStream = FileOutputStream(imageFile)
    }

    val requestImage = Request.Builder().url(audio.writer ? .image).build()
    val request = Request.Builder().url(audio.filePath).build()
    val responseImage = OkHttpClient().newCall(requestImage).execute()
    val response = OkHttpClient().newCall(request).execute()
    val sinkImage: BufferedSink = imageOutStream.sink().buffer()
    val sink: BufferedSink = audioOutStream.sink().buffer()

    sinkImage.writeAll(responseImage.body() !!.source())
    sink.writeAll(response.body() !!.source())
    sinkImage.close()
    sink.close()

    audioOutStream.close()
    imageOutStream.close()
}

如你所见,我正在使用协同程序。我不知道如何通过协同程序获得音频下载进度。如何获取音频下载进度


共 (0) 个答案