Я новичок в программировании на Java / Android, поэтому, пожалуйста, наберитесь терпения.
Я пытаюсь воспроизвести mp3, который находится в папке активов. Я знаю, что есть другой способ с папкой / res / raw /, но используйте папку assets, потому что позже я попытаюсь получить доступ к файлу по строке.
Этот код работает для воспроизведения mp3-файла:
try
{
MediaPlayer mp = new MediaPlayer();
FileDescriptor sfd = getAssets().openFd("song.mp3").getFileDescriptor();
mp.setDataSource(sfd);
mp.prepare();
mp.start();
}
catch(Exception e) {}
Теперь проблема: в той же папке ресурсов хранится еще один mp3-файл. Хотя я указываю название mp3, чтобы использовать его, возьмите то, что идет первым в алфавите. Например. другой файл называется «music.mp3», он воспроизводит этот. Переименовав его в «worldmusic.mp3», он воспроизведет «song.mp3». Переименуйте "worldmusic.mp3" обратно в "music.mp3", он снова возьмет этот mp3. Другой тест: переименование «song.mp3» во что-то другое, чтобы приложение могло найти то, что указано в приведенном выше коде, приведет к тому, что песня не будет воспроизведена. Таким образом, это означает, что название песни должно существовать, хотя она занимает произвольную песню сначала в алфавите.
Я тестирую с эмулятором AVD Eclipse. Но я думаю, что поведение будет таким же на реальном устройстве.
Кто-нибудь имеет представление об этой проблеме?