我正在尝试安装可与shoutcast链接一起使用的流播放器,但它对我不起作用。我想知道错误可能是什么,我已经附上了代码和链接。谢谢。
public class PrincipalActivity extends Activity {
//creando botones
Button btnPlay, btnRecargar, btnParar, btnTop, btnNosotros, btnSalir;
MediaPlayer mediaPlayer; // creando clase mediaPlayer para reproducir archivos.
String stream = "http://stream.dancefm.cl:9332"; //variable para la ulr streaming
boolean prepared, started = false; // 2 boleano para el estado del reproductor
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_principal);
//instanciando botones creados arriba con los botones fisicos.
btnPlay = (Button) findViewById(R.id.btnPlay);
btnRecargar = (Button) findViewById(R.id.btnRecargar);
btnParar = (Button) findViewById(R.id.btnStop);
btnTop = (Button) findViewById(R.id.btnTop);
btnNosotros = (Button) findViewById(R.id.btnNosotros);
btnSalir = (Button) findViewById(R.id.btnSalir);
WebView myWebbView = (WebView) this.findViewById(R.id.webprincipal); //creando e instanciando webview
myWebbView.loadUrl("https://www.dancefm.cl/noticias/");//Cargando webview
Toast toast = Toast.makeText(getApplicationContext(), "Esperando respuesta del servidor...", Toast.LENGTH_LONG);
toast.show(); //arriba creamos un toast para mostrar un mensaje y aqui abajo lo mostramos.
//Asignando estado a los botones... esto para que mientras este cargando no se utilzen estos botones.
btnPlay.setEnabled(false);
btnParar.setEnabled(false);
btnRecargar.setEnabled(false);
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
new PlayerTask().execute(stream); //llamara a quien reproducira el audio
}
class PlayerTask extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... strings) {
try {
mediaPlayer.setDataSource(strings[0]);
mediaPlayer.prepare();
prepared=true;
} catch (IOException e) {
e.printStackTrace();
}
return prepared;
}
@Override
protected void onPostExecute (Boolean aBoolean){
super.onPostExecute(aBoolean);
//btnPlay.setBackground(R.mipmap.pause);
mediaPlayer.start();
}
}
}
任何合作都会受到赞赏,因为我只希望音频流开始
答案 0 :(得分:0)
您可以使用prepareAsyc()
来准备mediaplyer。
尝试此代码。
//creando botones
Button btnPlay, btnRecargar, btnParar, btnTop, btnNosotros, btnSalir;
MediaPlayer mediaPlayer; // creando clase mediaPlayer para reproducir archivos.
String stream = "http://stream.dancefm.cl:9332"; //variable para la ulr streaming
boolean prepared, started = false; // 2 boleano para el estado del reproductor
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_principal);
//instanciando botones creados arriba con los botones fisicos.
btnPlay = (Button) findViewById(R.id.btnPlay);
btnRecargar = (Button) findViewById(R.id.btnRecargar);
btnParar = (Button) findViewById(R.id.btnStop);
btnTop = (Button) findViewById(R.id.btnTop);
btnNosotros = (Button) findViewById(R.id.btnNosotros);
btnSalir = (Button) findViewById(R.id.btnSalir);
WebView myWebbView = (WebView) this.findViewById(R.id.webprincipal); //creando e instanciando webview
myWebbView.loadUrl("https://www.dancefm.cl/noticias/");//Cargando webview
Toast toast = Toast.makeText(getApplicationContext(), "Esperando respuesta del servidor...", Toast.LENGTH_LONG);
toast.show(); //arriba creamos un toast para mostrar un mensaje y aqui abajo lo mostramos.
//Asignando estado a los botones... esto para que mientras este cargando no se utilzen estos botones.
btnPlay.setEnabled(false);
btnParar.setEnabled(false);
btnRecargar.setEnabled(false);
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(stream);
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
}
答案 1 :(得分:0)
您只需要将http://xxx.xx.xxx.x/的http://xxx.xx.xxx.x/;stream.mp3更改为QnAMakerOptions Class,这很重要;在shoucast网址中的/之后,如果您使用IOS,并且确实可以检查您的Shoucast版本,则Ios仅可以复制Shoucast v2