Java 如何从SC 2服务器选择要播放的SID?
我的代码如下所示,一切正常Java 如何从SC 2服务器选择要播放的SID?,java,android,android-mediaplayer,shoutcast,Java,Android,Android Mediaplayer,Shoutcast,我的代码如下所示,一切正常 public void ibutton_play_stop_click(View v) { switch(sharedPrefs.getInt("quality", 1)) { case 0: { uriStationURL = Uri.parse(StaticVars.RadioStations[0]); break; } case 1:
public void ibutton_play_stop_click(View v)
{
switch(sharedPrefs.getInt("quality", 1))
{
case 0:
{
uriStationURL = Uri.parse(StaticVars.RadioStations[0]);
break;
}
case 1:
{
uriStationURL = Uri.parse(StaticVars.RadioStations[1]);
break;
}
case 2:
{
uriStationURL = Uri.parse(StaticVars.RadioStations[2]);
break;
}
case 3:
{
uriStationURL = Uri.parse(StaticVars.RadioStations[3]);
break;
}
}
try
{
if((player == null) || (!player.isPlaying()))
{
this.player = new MediaPlayer();
prgBrBuffer.setVisibility(android.view.View.VISIBLE);
player.stop();
player.reset();
player.setDataSource(this, uriStationURL);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setOnPreparedListener(this);
player.setOnBufferingUpdateListener(this);
player.setOnErrorListener(this);
player.prepareAsync();
ibttnPlayStop.setEnabled(false);
}
else if((player != null) && (player.isPlaying()))
{
player.stop();
player.reset();
player = null;
}
}
catch(IOException e)
{
Log.e("Media Player Error: ", e.toString());
}
}
但无论选择哪个选项,每次播放同一个流时都会选择“?sid=”
我现在的问题是:如何从我的shoutcast2服务器选择哪个给定sid正在从媒体播放器播放?不要使用server.address/?sid=x,而只使用server.address/x不要使用server.address/?sid=x,只需使用服务器即可。地址/x可能是因为您的mediaplayer未刷新。从您的问题陈述来看,似乎是这样。我用完整的代码编辑了它。正如你所看到的,我每次都重新加载完整的播放器,可能是因为你的mediaplayer没有刷新。从你的问题陈述来看,似乎是这样。我用我的完整代码编辑了它。正如你所看到的,我每次尝试你的解决方案时都会重新加载完整的播放器,但仍然是相同的问题,这是罪过。您无法通过流的数字id直接访问实际流。不过,您可以通过获取server.address/listen.pls?sid=x来获取相对播放列表文件,然后解析输出并获取条目File1=中列出的地址,这将为您提供流的实际装入点名称(即server.address:port/streamname)尝试了您的解决方案,但仍然存在相同的问题,这是错误的。您无法通过流的数字id直接访问实际流。不过,您可以通过获取server.address/listen.pls?sid=x来获取相对播放列表文件,然后解析输出并获取条目File1=中列出的地址,这将为您提供流的实际装入点名称(即server.address:port/streamname)