#java #android #audio
#java #Android #Аудио
Вопрос:
Я использую contenResolver для запроса всех песен из Mediastore.Аудио. Вот код:
package com.example.beethozart
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.provider.MediaStore
import timber.log.Timber
import java.io.File
class MainActivity : AppCompatActivity() {
private fun getAudioDirectories() {
val uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
contentResolver.query(uri, null, null, null, null)?.let {
it.moveToFirst()
val pathIndex = it.getColumnIndex(MediaStore.Audio.Media.DATA)
do {
val path = it.getString(pathIndex)
Timber.i(path)
} while (it.moveToNext())
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
getAudioDirectories()
}
}
Проблема в том, что он находит не все песни с устройства, а только некоторые песни в определенной папке. Вот журнал:
2021-02-10 14:15:53.793 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Ding.mp3
2021-02-10 14:15:53.793 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Boing.mp3
2021-02-10 14:15:53.794 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Drop.mp3
2021-02-10 14:15:53.794 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Tada.mp3
2021-02-10 14:15:53.794 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Plink.mp3
2021-02-10 14:15:53.794 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Wow.mp3
2021-02-10 14:15:53.795 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Here you go.mp3
2021-02-10 14:15:53.795 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Hi.mp3
2021-02-10 14:15:53.795 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Yoink.mp3
2021-02-10 14:15:53.796 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Knock brush.mp3
2021-02-10 14:15:53.796 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Whoa.mp3
2021-02-10 14:15:53.796 29484-29484/com.example.beethozart I/MainActivity: /storage/emulated/0/Android/media/com.Slack/Notifications/Slack - Incoming call.mp3
Есть ли какой-нибудь способ это исправить?
Комментарии:
1. Пожалуйста, укажите полные пути к файлам, которые не найдены.
2.
getAudioDirectories()
Что такое имя?3. @blackapps Не удается найти все песни, не принадлежащие /storage/emulated/0/Android/media/com.Slack/Notifications/Slack (например,/storage/emulated/0/Android/media/audio.mp3). Когда я копирую другой аудиофайл в эту папку, его можно найти. Например,
4. Как вы точно копируете? Или какое приложение это делает? И кто или как или какое приложение поместило эти файлы в этот каталог, которые не найдены? Или найдены.
5. Если вы помещаете только файлы в каталоги, то происходит большое изменение, о котором хранилище мультимедиа не знает. Итак, как вы это сделали? MediaStore знает о файлах только в том случае, если он проиндексировал / отсканировал их раньше. Как насчет приложения Галерея или Фото или фотографии на вашем устройстве… они их показывают?