JavaZoom-广播流 [英] JavaZoom - Radio Stream

查看:126
本文介绍了JavaZoom-广播流的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我想知道是否可以使用Java播放Internet Radio-Stream?

我搜索了inet,找到了在您的PC上播放mp3文件的代码.
该插件称为JavaZoom.

Hi,

i''m wondering if it''s posible to stream an internet Radio-Stream with Java?

I searched the inet and found a code for playing mp3 files on your pc.
The plugin is called JavaZoom.

import javax.sound.sampled.*;
import java.io.*;

public class Radio {

	public static void main(String[] args) throws Exception{
		
		//testPlay("C:...");
		
	}
	
	public static void testPlay(String filename)
	{
	  try {
	    File file = new File(filename);
	    AudioInputStream in= AudioSystem.getAudioInputStream(file);
	    AudioInputStream din = null;
	    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);
	    // Play now.
	    rawplay(decodedFormat, din);
	    in.close();
	  } catch (Exception e)
	    {
	      System.out.println(e.toString());
	    }
	}

private static void rawplay(AudioFormat targetFormat, AudioInputStream din) throws IOException,                                                                                                LineUnavailableException
	{
	  byte[] data = new byte[4096];
	  SourceDataLine line = getLine(targetFormat);
	  if (line != null)
	  {
	    // Start
	    line.start();
	    int nBytesRead = 0, nBytesWritten = 0;
	    while (nBytesRead != -1)
	    {
	        nBytesRead = din.read(data, 0, data.length);
	        if (nBytesRead != -1) nBytesWritten = line.write(data, 0, nBytesRead);
	    }
	    // Stop
	    line.drain();
	    line.stop();
	    line.close();
	    din.close();
	  }
	}

	private static SourceDataLine getLine(AudioFormat audioFormat) throws LineUnavailableException
	{
	  SourceDataLine res = null;
	  DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
	  res = (SourceDataLine) AudioSystem.getLine(info);
	  res.open(audioFormat);
	  return res;
	} 
	
}



此代码有效.但是现在我想流式传输mp3文件-而不是只加载一次然后播放它.我需要不断下载.这样我就可以播放广播频道.

任何人都有正确的密码吗?

Thx



This Code works. But now i want to to stream a mp3 file - but not just load it one time and then play it. I need i constant download. So i can stream a radio channel.

Anyone got the right code?

Thx

推荐答案

是的,我有一个.不幸的是,它被卡在某些winamp插件中.提取它会花费我一大笔时间-因此,您必须为此付出2笔钱!

我丢失的流式MP3文章 [ Winamp插件开发人员WIKI [
yeah I have one. Unfortunately it''s stuck in some winamp-plugin. It will cost me one fortune of time to extract that - so you''d have to pay 2 fortunes for that!

My Lost Streaming MP3 Article[] is a good point to start at.

Winamp Plugin Developer WIKI[^] should bring some ideas on how to use these gives tools.


这篇关于JavaZoom-广播流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆