ฉันมีรหัสต่อไปนี้:
AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor());
player.prepare();
player.start();
ปัญหาคือเมื่อฉันเรียกใช้โค้ดนี้มันจะเริ่มเล่นไฟล์เสียงทั้งหมดในไดเร็กทอรีสินทรัพย์ตามลำดับตัวอักษรแทนที่จะเล่นไฟล์เสียงที่ฉันร้องขอ ผมทำอะไรผิดหรือเปล่า? มีวิธีที่ดีกว่าในการเล่นไฟล์เสียงจากไดเรกทอรีเนื้อหาหรือไม่
คำถามติดตามผล: มีความแตกต่างระหว่างการเก็บไฟล์เสียงในไดเร็กทอรีสินทรัพย์และเก็บไว้ในไดเร็กทอรี res / raw หรือไม่ นอกจากข้อเท็จจริงที่ว่าพวกเขาไม่ได้รับรหัสหากอยู่ในไดเรกทอรีเนื้อหา หากฉันย้ายไฟล์เสียงไปยังโฟลเดอร์ res / raw แสดงว่าฉันมีปัญหากับการนำMediaPlayer
s กลับมาใช้ใหม่เนื่องจากไม่มีพารามิเตอร์ id สำหรับsetDataSource()
. ฉันไม่พบแนวทางที่ดีในการจัดการปัญหาประเภทนี้