Windows 7 с использованием NetBeans
, поэтому я запрограммировал этот действительно крутой звуковой движок, используя эту страницу http://www.docjar.org/docs/api/sun/audio/AudioPlayer.html аудиоплеер ... теперь я сделал это в цикле, и все ВСЕ работает: D, но когда я играюзвук, который работает на частоте около 2000 Гц или меньше, все работает, но, как и любой выше, чем как 3000-4000, он дает мне эту ошибку
10/08/2011 01:53:37 org.game.engine.SoundEngine loop
SEVERE: null
java.io.IOException: could not create AudioData object
at sun.audio.AudioStream.getData(AudioStream.java:110)
at org.game.engine.SoundEngine.loop(SoundEngine.java:61)
at org.enginetest.EngineTest.main(EngineTest.java:30)
теперь я на 100% уверен, что это не файл сам, потому что я пыталсяиспользуя несколько звуков, что Гц выше 4000, и это все еще не работает.теперь я знаю, что он принимает только WAV, поэтому я дал ему только файлы WAV.Я понятия не имею, почему это делает это!КСТАТИ !!!!! ВАЖНО !!!!Он не работает со звуками выше 4000 Гц ТОЛЬКО ТОЛЬКО ТОЛЬКО, когда я пытаюсь отключить звук с помощью ContinuousAudioDataStream, ЕСЛИ Я ИГРАЮ В ЕГО РАЗ, ЭТО РАБОТАЕТ СОВЕРШЕННО ХОРОШО ... Как я могу исправить эту проблему ограничения Гц?может быть, вы можете просто дать мне код, который работает так же ...
вот два звуковых файла, которые я использую рабочий звук: http://www.mediafire.com/?kyqlr6dah71q62b не рабочий звук: http://www.mediafire.com/?72whdk7h1k7k4ee
(просто говорю, что здесь немного грязно из-за странного пространства, которое нужно поместить в кодовое поле, mabob XD), если вам нужно, вот мой код:
package org.game.engine;
import java.net.MalformedURLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import sun.audio.*;
import java.io.IOException;
import java.io.*;
import java.net.URL;
/**
*
* @author Amit
*/
public class SoundEngine {
private String filename;
private InputStream in;
private AudioStream as;
private AudioData data;
private URL test;
private ContinuousAudioDataStream audiostream;
private boolean checkforlooped = false;
public SoundEngine(String name) {
filename = name;
try {
in = new FileInputStream(filename);
} catch (FileNotFoundException ex) {
Logger.getLogger(SoundEngine.class.getName()).log(Level.SEVERE, null, ex);
}
try {
as = new AudioStream(in);
} catch (IOException ex) {
Logger.getLogger(SoundEngine.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void start() {
if (checkforlooped) {
try {
in = new FileInputStream(filename);
} catch (FileNotFoundException ex) {
Logger.getLogger(SoundEngine.class.getName()).log(Level.SEVERE, null, ex);
}
try {
as = new AudioStream(in);
} catch (IOException ex) {
Logger.getLogger(SoundEngine.class.getName()).log(Level.SEVERE, null, ex);
}
}
AudioPlayer.player.start(as);
}
public void stop() {
AudioPlayer.player.stop(as);
}
public void stoploop() {
AudioPlayer.player.stop(audiostream);
AudioPlayer.player.stop(as);
}
public void loop() {
if (!checkforlooped) {
try {
data = as.getData();
audiostream = new ContinuousAudioDataStream(data);
} catch (IOException ex) {
Logger.getLogger(SoundEngine.class.getName()).log(Level.SEVERE, null, ex);
}
AudioPlayer.player.start(audiostream);
checkforlooped = true;
} else {AudioPlayer.player.start(audiostream);}
}
}