Tôi có đoạn mã sau:chơi tập tin âm thanh từ thư mục tài sản
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 chơi tất cả các file âm thanh trong thư mục tài sản, trong thứ tự chữ cái thay vì chỉ cần phát tệp âm thanh mà 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 nội dung không?
Câu hỏi tiếp theo: Có sự khác biệt nào giữa việc lưu tệp âm thanh trong thư mục nội dung 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 tệp âm thanh vào thư mục res/raw thì tôi gặp sự cố khi 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.
Nó hoạt động. Cảm ơn. Nhưng tôi nghĩ rằng phiên bản của tôi NÊN cũng đã làm việc. –
Phiên bản của bạn sẽ hoạt động nếu bạn chỉ có một tệp trong thư mục nội dung. Nội dung thư mục nội dung không thực sự là 'tệp thực' trên đĩa. Tất cả chúng được đặt lại với nhau. Vì vậy, nếu bạn không chỉ định bắt đầu từ đâu và số byte cần đọc, người chơi sẽ đọc đến cuối (tức là, sẽ tiếp tục phát tất cả các tệp trong thư mục nội dung) –
Câu trả lời rất hay! – Redax