Ich entwickle eine kleine Android-Anwendung, in der ich den RTP-Link mit Android Media Player spielen .Es funktioniert ordnungsgemäß auf weniger als Android 16 API. aber das Problem ist, dass, wenn ich auf Android 16 laufen sie viel Zeit in Anspruch nehmen zu spielen und einige Zeit auch nicht play.following ist der Code, den ich bin mitLive Streaming Audio Verzögerungen beim Abspielen in Android-16?
sdrPlayer = new MediaPlayer();
sdrPlayer.setDataSource(url);
sdrPlayer.prepare();
sdrPlayer.setOnCompletionListener(video.this);
sdrPlayer.setOnPreparedListener(video.this);
sdrPlayer.setOnBufferingUpdateListener(video.this);
sdrPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
Im Folgenden sind einige Testfall
- ZTE N860 - dauert etwa 4 bis 5 Minuten, um mit dem Radio zu beginnen.
- Samsung Galaxy S4 - Audio funktioniert überhaupt nicht. Es ruft die Startmethode in
onprepare
Methode auf, aber es gibt kein Audio. - Samsung SCH1415 - dauert etwa 8 Minuten, um das Radio zu spielen
- HTC V5 - Audio funktioniert nicht die ganze Zeit. Es beginnt zu spielen, aber gibt es kein Audio. Das Verhalten ist inkonsistent und das verursacht mehr Frustration.
Nitin, ich würde vorschlagen, dass Sie den Verkehr auf den Server schnüffeln, wenn Sie können und vergleichen Sie die 2 RTSP Austausch. Ich erinnere mich, irgendwo gelesen zu haben, dass das RTSP-Implementierungsupdate auf einer Android-Version viele bestehende Anwendungen kaputt gemacht hat. Wenn dies der Fall ist, sollten Sie einen Unterschied im RTSP-Austausch sehen. – Ralf
Zunächst einmal danke für den Kommentar @Ralf, aber Android 16 nehmen Sie immer Zeit, um den Link zum ersten Mal zu laden, wenn wir Link und bei einigen Gelegenheiten nach dem Zufallsprinzip laden.Auch der Media Player spielt Methode gibt true.so ich kann nicht zeigen, Fortschritt. aber manchmal funktioniert es richtig. Ist es möglich, dass Server immer zuerst einige beschädigte Bits senden und manchmal. – Nitin
Die Wartezeiten werden durch die Audiopuffergröße verursacht. Ich glaube, die Größe wurde mit Android 16+ erhöht. Was ist deine Frage? Da Sie die Puffergröße nicht kontrollieren können, haben Sie kein Glück, wenn Sie den MediaPlayer verwenden möchten. Meine Anwendung verwendet einen FFmpeg-basierten Player, damit ich die Puffergröße steuern kann. –