我已经看到很多有关在Android中使用JLayer播放.mp3文件的问题,其中许多问题都接受了答案,这意味着它们成功地使用JLayer处理了.mp3文件。
我下载了.jar
并将其导入到我的项目中。然后,我实现了以下内容以测试其是否有效:
AssetFileDescriptor assetFileDescriptor = getApplication().getAssets().openFd("testing.mp3");
FileDescriptor fileDescriptor = assetFileDescriptor.getFileDescriptor();
FileInputStream stream = new FileInputStream(fileDescriptor);
//JLayer below
Player player = new Player(stream);
player.play();
运行我的应用程序时,出现以下错误:
java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/sound/sampled/AudioFormat;
我做了一些研究,found发现android不支持javax。我浏览了JLayer.jar,发现在JavaSoundAudioDevice.java
中有以下导入:
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Line;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.DataLine.Info;
因此,如果android不支持javax且JLayer使用javax,那么其他人如何使它工作? -如this问题中所示。.