所以我想知道为什么我可以连接到这个无线电流(http://51.255.127.128:8016/stream),但我似乎无法连接到VLC rtsp或rtp流。我的印象是我可以简单地连接到rtp:// hostaddress:port#但似乎我无法获得连接。有什么方法可以避免使用rtp类,只是使用下面显示的方法直接执行它?
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.media.MediaPlayer;
import android.view.View;
import android.widget.Button;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
Button button_stop;
Button button_play;
Uri stream_data= Uri.parse("http://51.255.127.128:8016/stream");
//works for rtsp and http
//private String STREAM_URL ="http://51.255.127.128:8016/stream";
private MediaPlayer mPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button_stop=(Button) findViewById(R.id.Stop_b);
button_play=(Button) findViewById(R.id.Play_b);
mPlayer=new MediaPlayer();
button_play.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
try{
mPlayer.reset();
mPlayer.setDataSource(MainActivity.this,stream_data);
mPlayer.prepare();
mPlayer.start();
;
} catch (IOException e){
e.printStackTrace();
}
}
});
button_stop.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
mPlayer.stop();
}
});
}
}
答案 0 :(得分:0)
使用prepareAsync。
mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
mPlayer.prepareAsync();