Я прочитал все песни из внешнего хранилища с помощью MediaStore.Audio.Media. Но я не могу извлечь URI песни - PullRequest
0 голосов
/ 15 апреля 2020

Я читаю песни следующим образом:

 private void getMusic() {
    ContentResolver contentResolver = Objects.requireNonNull(getActivity()).getContentResolver();
    Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    Cursor musicCursor = contentResolver.query(musicUri, null, null, null, null);

    if (musicCursor != null && musicCursor.moveToFirst()) {
        int musicTitleColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
        int musicArtistColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
        int musicPathColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.DATA);
        mList = new ArrayList<>();
        do {
            String musicTitle = musicCursor.getString(musicTitleColumn);
            String musicArtist = musicCursor.getString(musicArtistColumn);
            String musicPath = musicCursor.getString(musicPathColumn);
            mList.add(new MusicData(musicTitle, musicArtist, musicPath, R.drawable.image));
        } while (musicCursor.moveToNext());
    }
}

в приведенном выше коде я использовал MediaStore.Audio.Media.DATA для извлечения пути песни. Но он не работает с MediaPlayer.

Я использую MediaPlayer следующим образом:

  String path = songData.getMusicPath();
  MediaPlayer player = MediaPlayer.create(getActivity(), Uri.parse(path));
            if (player != null) {
                player.start();
            } else {
                Toast.makeText(getContext(), path, Toast.LENGTH_SHORT).show();
            }
...