所以我试着播放一个简单的声音文件,但它不起作用。具体代码是
if(key == 'r' || key == 'R') {
file = new SoundFile(this, "track1.wav");
file.play();
}
if(key == 't' || key == 'T') {
file = new SoundFile(this, "track2.wav");
file.play();
}
if(key == 'y' || key == 'Y') {
file = new SoundFile(this, "track3.wav");
file.play();
}它给了我这个错误
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
at java.desktop/com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:484)
at java.desktop/com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:115)
at com.jsyn.devices.javasound.JavaSoundAudioDevice$JavaSoundInputStream.start(Unknown Source)
at com.jsyn.engine.SynthesisEngine$EngineThread.run(Unknown Source)
java.lang.NullPointerException: Cannot invoke "javax.sound.sampled.TargetDataLine.read(byte[], int, int)" because "this.line" is null
at com.jsyn.devices.javasound.JavaSoundAudioDevice$JavaSoundInputStream.read(Unknown Source)
at com.jsyn.devices.javasound.JavaSoundAudioDevice$JavaSoundInputStream.read(Unknown Source)
at com.jsyn.engine.SynthesisEngine$EngineThread.run(Unknown Source)
java.lang.RuntimeException: AudioInput stop attempted when no line created.
at com.jsyn.devices.javasound.JavaSoundAudioDevice$JavaSoundInputStream.stop(Unknown Source)
at com.jsyn.engine.SynthesisEngine$EngineThread.run(Unknown Source)发布于 2022-03-14 00:10:44
我建议在res文件夹下添加此声音文件。在我的项目中,我在"res“下创建了名为"raw”的文件夹,其中包含了这些文件,sound.mp3,为了播放它,我使用了
mediaPlayer = MediaPlayer.create(SCREEN_NAME.this,R.track1);
mediaPlayer.start();编辑:我创建了这个变量
private MediaPlayer mediaPlayer;https://stackoverflow.com/questions/71461791
复制相似问题