Affronto il problema che ogni volta che uno stream viene riprodotto dalla mia app su Android 4.0+ il metodo OnPrepare
da MediaPlayer.OnPreparedListener
viene chiamato anche prima che venga caricato un flusso e quindi non sono in grado di indicare all'utente che è in corso il download/buffer del flusso. I have already found a question of the same kind but not answered Ecco cosa sto facendo.Android - MediaPlayer in preparazione Viene chiamato anche prima che lo stream venga preparato su Android 4.0 o
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
playVideo(someRtspUrl);
}
private void playVideo(String url) {
// if app is running on Google TV then change RTSP link to HLS
if (url.contains("rtsp")) {
// split the RTSP URL and make it as HLS
String videoUrlParts[] = url.split("\\?");
url = videoUrlParts[0].replace("rtsp", "http") + "/playlist.m3u8";
if (videoUrlParts.length > 1)
url += "?" + videoUrlParts[1];
} mVideoView.setVideoURI(Uri.parse(url));
mVideoView.requestFocus();
mVideoView.setOnCompletionListener(this);
mVideoView.setOnPreparedListener(this);
}
@Override
public void onPrepared(MediaPlayer player) {
dismissProgressDialog();
mVideoView.start();
}
Questo codice sta lavorando bene su Google TV e altri Android 3.0 + 4.0 + e < dispositivo
Grazie per i suggerimenti/query @gvmani. per il secondo direi che sto suonando l'oggetto originale/principale. per il primo. preparare in modo sincrono funziona anche. il problema è su OS –