Ses dosyasını kodda sağlanan URL'den almak ve oynatmak istiyorum (mp3
biçimindedir). Bu soruna ilişkin bazı Stack Overflow sorularını inceledim ve hepsinin mp3plugin.jar
'u almasını sağladım.Giriş akışından ses giriş akışı alınamadı
Eclipse'de, Yapılandırma Yapılandırma Yapılandırması altından harici bir kavanoz olarak (Yüklemelerim klasörünün içinde yer aldığından emin olmamak üzere, bunun için en iyi yer olduğundan emin değilim) ekledim. Tekrar koştum ve hala bana bu hatayı veriyor:
İştejavax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input stream
at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
at Starter.main(Starter.java:21)
kodudur:
public class Starter {
public static void main(String[] args) {
AudioInputStream din = null;
try {
URL url = new URL("http://c5.rbxcdn.com/2e6d33a5b3b1d8f250c395816ff9f145");
HttpURLConnection httpcon = (HttpURLConnection) url.openConnection();
InputStream bufferedIn = new BufferedInputStream(httpcon.getInputStream());
AudioInputStream in = AudioSystem.getAudioInputStream(bufferedIn);
AudioFormat baseFormat = in.getFormat();
AudioFormat decodedFormat = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
baseFormat.getSampleRate(), 16, baseFormat.getChannels(),
baseFormat.getChannels() * 2, baseFormat.getSampleRate(),
false);
din = AudioSystem.getAudioInputStream(decodedFormat, in);
DataLine.Info info = new DataLine.Info(SourceDataLine.class, decodedFormat);
SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
if(line != null) {
line.open(decodedFormat);
byte[] data = new byte[4096];
// Start
line.start();
int nBytesRead;
while ((nBytesRead = din.read(data, 0, data.length)) != -1) {
line.write(data, 0, nBytesRead);
}
// Stop
line.drain();
line.stop();
line.close();
din.close();
}
}
catch(Exception e) {
e.printStackTrace();
}
finally {
if(din != null) {
try { din.close(); } catch(IOException e) { }
}
}
}
}
Hiç ne okuduğunuzu kontrol ettiniz mi var? Bir html hata sayfasını bir MP3 olarak ele alıyor olabilirsiniz. – Marged
Bu URL'yi Chrome'uma girdiğimde, ağ sekmesinde 2 satır gördüm. Gerçek akışı – Gavriel
vermek için biraz daha fazla başlık gerekebilir. Bunun medya bölümünü nasıl alabilirim? (Belge ve medya diyor). JSoup'un java'da bazı html işlemleriyle başa çıkabileceğini duydum. –