Я создаю приложение для музыкального проигрывателя, используя Android Studio в Kotlin. Я использую MediaStore, чтобы найти аудиофайлы из mediastore.adio.media.external_content_uri . Я хочу обрезать и сохранить обрезанную версию песни в том же каталоге, что и старая песня, поэтому я могу открыть ее, используя MediaStore. и работает отлично?). Затем я увидел, что его необходимо сохранить с помощью mediastore insert () , но он не может добавить ко всем папкам внутри mediastore.adio.media.external_content_uri из -за хранения Когда я работал с переименованием или удалением уже существующих песен, у меня не было проблем с использованием mediastore.createwRiteRequest (ContentResolver, URI) для получения доступа, но я не знаю, как получить URI для файла, который еще не создан (я предполагаю его невозможно?). Вот текущий код: < /p>
Вот ошибка:
Java.lang.illegalargumentException: Загрузка первичного каталога не разрешена для контента: // media/external_primary/audio/media; Разрешенными каталогами являются [тревоги, аудиокниги, музыка, уведомления, подкасты, записи, рингтоны]
Я создаю приложение для музыкального проигрывателя, используя Android Studio в Kotlin. Я использую MediaStore, чтобы найти аудиофайлы из mediastore.adio.media.external_content_uri . Я хочу обрезать и сохранить обрезанную версию песни в том же каталоге, что и старая песня, поэтому я могу открыть ее, используя MediaStore. и работает отлично?). Затем я увидел, что его необходимо сохранить с помощью mediastore insert () , но он не может добавить ко всем папкам внутри mediastore.adio.media.external_content_uri из -за хранения Когда я работал с переименованием или удалением уже существующих песен, у меня не было проблем с использованием mediastore.createwRiteRequest (ContentResolver, URI) для получения доступа, но я не знаю, как получить URI для файла, который еще не создан (я предполагаю его невозможно?). Вот текущий код: < /p> [code]private fun trimAudio() { try { path?.let{ val tempPath = File(context.cacheDir, "temp.${extension(it)}") val mediaItem = MediaItem.Builder() .setUri(uri) .setClippingConfiguration(ClippingConfiguration.Builder() .setStartPositionMs(start) .setEndPositionMs(end) .build()) .build() val transformer = Transformer.Builder(context) .addListener(object: Transformer.Listener { override fun onCompleted(composition: Composition, result: ExportResult) { Log.d("Trim", "Successful temporary") registerSong(tempPath) }