Tôi có đoạn mã sau:
AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor());
player.prepare();
player.start();
Vấn đề là, khi tôi chạy mã này, nó bắt đầu phát tất cả các tệp âm thanh trong thư mục tài sản, theo thứ tự bảng chữ cái thay vì chỉ phát tệp âm thanh tôi yêu cầu. Tôi đang làm gì sai? Có cách nào tốt hơn để phát tệp âm thanh từ thư mục tài sản không?
Câu hỏi tiếp theo: Có sự khác biệt giữa việc giữ các tệp âm thanh trong thư mục tài sản và giữ chúng trong thư mục res / raw không? Bên cạnh thực tế là họ không nhận được id nếu họ đang ở trong thư mục tài sản. Nếu tôi di chuyển các tệp âm thanh vào thư mục res / raw thì tôi gặp vấn đề với việc sử dụng lại MediaPlayer
vì không có tham số id cho setDataSource()
. Tôi không thể tìm thấy một hướng dẫn tốt để xử lý loại vấn đề này.