Как воспроизводить песни из списка. Я могу получить песни, но не могу воспроизвести ни одно содержимое

#android

#Android

Вопрос:

Ниже приведен мой код для получения песен с устройства. но я не могу воспроизвести ни одно содержимое.

 try {
     Cursor cursor = getContentResolver().query(
     MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);

     if (cursor == null) {
        // Query failed...
     } else if (!cursor.moveToFirst()) {
     // Nothing to query. There is no music on the device.
     }else {
     // add each song to mItems.

    //these is the part that gets each item from the cursor and adds them to the list.

     do {
          int artistColumn = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
          // add each song to mItems.
         int titleColumn = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
          // add each song to mItems.
          int albumColumn = cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM);
          // add each song to mItems.
          int albumArt = cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);
          // add each song to mItems.
          int durationColumn = cursor.getColumnIndex(MediaStore.Audio.Media.DURATION);
          // add each song to mItems.
          int idColumn = cursor.getColumnIndex(MediaStore.Audio.Media._ID);
          // add each song to mItems.
          int filePathIndex =  cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

          int art = cursor.getColumnIndex(MediaStore.Audio.AlbumColumns.ALBUM_ART);

          // these section adds the media info(MediaInfo.class) to the mediaList.
          MediaFileInfo audio = new MediaFileInfo();
          audio.setFileName(cursor.getString(titleColumn));
          audio.setFilePath(cursor.getString(filePathIndex));
          audio.setImgId(cursor.getInt(albumArt));
          audio.setFileType(type);
          audio.setImgId(cursor.getInt(art));

           //am adding all the items to the list(medaiList).

          mediaList.add(audio);
     } while (cursor.moveToNext());
     }
} catch (Exception e) {
     e.printStackTrace();
}
  

Комментарии:

1. вам нужно прочитать MediaPlayer документацию API

2. улучшенное форматирование

Ответ №1:

Я думаю, вам нужно установить источник данных для вашего пути курсора, что означает путь к вашей песне.И если вы используете контент-провайдера, запрос URI, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI .

Затем вам нужно установить возвращаемый курсор в курсоре пути к песне. Вот так,

 String path = cursor.getString(getColumnIndex(Audio.Media.DATA));
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(path);
mp.prepare();
mp.start();
  

Это поможет вам…

Комментарии:

1. если это работает для вас, тогда примите это как ответ… Спасибо