Real-Time Streaming (RTS), ApsaraVideo Live'ın milyonlarca eşzamanlı kullanıcıya milisaniye düzeyinde gecikme süresiyle canlı yayın sunan katma değerli bir özelliğidir. Geleneksel canlı yayınlardaki 3 ila 6 saniyelik gecikme süresini azaltan RTS, ApsaraVideo Player SDK aracılığıyla ultra düşük gecikmeli, kesintisiz ve anında oynatma imkanı sunar.
Özellikler, API dokümantasyonu ve SSS hakkında daha fazla bilgi için bkz. Android oynatıcı.
RTS ile oynatma
Android için ApsaraVideo Player SDK, düşük gecikmeli canlı yayın için yerel RTS SDK'sını entegre eder. Daha fazla bilgi için bkz. Android'de RTS akış çekmeyi uygulama.
Kod örneği için API-Example içindeki RTS ultra düşük gecikmeli canlı oynatma (RtsLiveStream) modülüne bakın. Bu Java tabanlı örnek proje, Android için ApsaraVideo Player SDK'nın temel özelliklerinin nasıl entegre edileceğini gösterir.
RTS çözünürlük değiştirme
Bu özellik, ApsaraVideo Live oynatma URL'lerini ve transkod edilmiş akış URL'lerini destekler. Hem varsayılan hem de özel transkodlama desteklenir. Canlı akış transkodlaması hakkında daha fazla bilgi için bkz. Transkodlama yönetimi. Akış URL'lerinin nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. Akış URL'leri oluşturma.
Çözünürlük değiştirme, RTS ve HTTP-FLV protokollerini kullanan canlı akışlar için desteklenir.
Alınan akışın resim grubu (GOP) boyutu 1 veya 2 saniye olmalıdır. Daha büyük bir GOP boyutu, akışları değiştirirken oynatmanın atlamasına neden olabilir.
Yayın alan adı için FLV oynatma sırasında RTMP zaman damgalarını çıkarma ve yukarı akış kesintisi sonrasında RTMP zaman damgalarını çıkarma seçeneklerini etkinleştirin. Transkodlama yapılandırması için Kaynak zaman damgası ve Kaynak anahtar kare seçeneklerini etkinleştirin. Aksi takdirde, akış değiştirme takılabilir veya başarısız olabilir. Bu seçenekleri etkinleştirmek için bir destek talebi gönderin.
Bu gereksinimleri karşılamayan bir akış URL'sine geçiş yaparsanız, geçiş işlemi başarısız olur.
Çözünürlükleri değiştirin
Çözünürlükleri değiştirmek için switchStream yöntemini çağırın ve yeni çözünürlüğün URL'sini iletin.
// Start playback
aliPlayer.setUrlSource(oldUrl);
aliPlayer.prepare();
aliPlayer.start();
// Switch to another URL during playback
aliPlayer.switchStream(newUrl);
Çözünürlük değiştirme bildirimleri
Bir çözünürlük değişikliği başarılı olduğunda veya başarısız olduğunda aşağıdaki geri aramalar tetiklenir.
aliPlayer.setOnStreamSwitchedListener(new IPlayer.OnStreamSwitchedListener() {
@Override
public void onSwitchedSuccess(String url) {
Log.i("SwitchStream", "switch success, url = " + url);
}
@Override
public void onSwitchedFail(String url, ErrorInfo errorInfo) {
Log.i("SwitchStream", "switch failed, url = " + url + ", error=" + errorInfo.getMsg());
}
});