全部产品
Search
文档中心

ApsaraVideo Live:Praktik terbaik untuk pemutaran RTS

更新时间:Jul 02, 2025

Jika browser Anda tidak mendukung WebRTC atau penarikan aliran melalui RTS gagal, Anda dapat memutar aliran menggunakan protokol terdegradasi seperti HTTP Live Streaming (HLS) atau HTTP Flash Video (HTTP-FLV). Topik ini menjelaskan skenario di mana Anda dapat menggunakan protokol terdegradasi daripada RTS untuk memutar aliran saat menggunakan pemain Anda sendiri yang terintegrasi dengan Web RTS SDK atau menggunakan ApsaraVideo Player.

Ikhtisar

Berikut adalah skenario di mana Anda dapat mempertimbangkan penggunaan protokol terdegradasi dibandingkan RTS untuk memutar aliran:

  • Browser Anda tidak mendukung WebRTC atau H.264.

    Catatan

    Web RTS SDK bergantung pada dukungan browser terhadap WebRTC. Browser umum di pasaran telah diuji kompatibilitasnya dengan SDK. Untuk informasi lebih lanjut, lihat Versi Browser yang Didukung. Anda dapat memeriksa apakah browser Anda memenuhi persyaratan menggunakan fungsi isSupport yang disediakan oleh Web RTS SDK. Jika browser Anda mendukung WebRTC tetapi tidak ada dalam daftar, Anda dapat melakukan pengujian penuh dan melewati pemeriksaan isSupport untuk browser tersebut.

  • Permintaan sinyal gagal karena URL sumber tidak valid, konfigurasi HTTPS tidak valid, atau konfigurasi RTS tidak valid.

  • Waktu mulai pemutaran habis atau aliran terputus selama pemutaran.

Berikut ini menjelaskan cara menggunakan protokol terdegradasi daripada RTS untuk memutar aliran dalam skenario sebelumnya ketika Anda menggunakan pemain Anda sendiri yang terintegrasi dengan Web RTS SDK atau menggunakan ApsaraVideo Player.

Gunakan pemain Anda sendiri yang terintegrasi dengan Web RTS SDK

Catatan
 /**
   * Skenario di mana Anda dapat menggunakan protokol terdegradasi:
   * 1. Browser tidak didukung. Konfigurasikan isSupport().catch untuk menggunakan protokol terdegradasi.
   * 2. Kegagalan penyambungan ulang terjadi saat koneksi sedang dibuat atau selama pemutaran. Dalam kasus ini, kode kesalahan 10410 dikembalikan dalam acara onError.
   **/

  var pullStreamUrl = 'URL sumber RTS.';
  var fallbackUrl = 'URL berdasarkan protokol terdegradasi, seperti HLS.';

  // Inisialisasi SDK.
  var aliRts = AliRTS.createClient();
	
	aliRts.on('onError', (error) => {
    console.log(error.errorCode, error.message); // Kode kesalahan dan pesan kesalahan.
    // Tentukan apakah akan menggunakan protokol terdegradasi.
    switch(error.errorCode){
      case 10410: // Penyambungan ulang untuk penarikan aliran (langganan) gagal.
        fallback(); // Gunakan protokol terdegradasi.
        break;
      default:
    }
  });

  // Periksa apakah browser didukung.
  // Anda dapat melewati pemeriksaan isSupport dan langsung menjalankan subscribeRts untuk menarik aliran jika browser tidak ada dalam daftar yang dijelaskan dalam topik berikut: ApsaraVideo Live > Panduan Pengguna > Streaming Waktu Nyata > Web RTS SDK > Web RTS SDK untuk penarikan aliran > Integrasikan Web RTS SDK dengan pemain lain > Gambaran SDK. Operasi ini dapat menyebabkan risiko. Lakukan pengujian penuh sebelum melakukan operasi ini.
  aliRts.isSupport({ isReceiveVideo: true }).then(subscribeRts).catch(fallback)

  function subscribeRts() {
    aliRts.subscribe(pullStreamUrl, {
      // mediaTimeout: 6000  // Tentukan periode waktu habis.
      // retryTimes: 5,      // Tentukan jumlah upaya penyambungan ulang. Nilai default: 5.
  		// retryInterval: 2000,// Tentukan interval antara upaya penyambungan ulang. Nilai default: 2000. Unit: milidetik.
    }).then((remoteStream) => {
      remoteStream.play(mediaElement);
    }).catch(() => {})
  }

  // Gunakan protokol terdegradasi untuk pemutaran.
  function fallback() {
    // Kode berikut memberikan contoh. Anda dapat memilih pemain yang sesuai berdasarkan protokol yang Anda gunakan.
    hlsPlayer.play(fallbackUrl)
  }

Gunakan ApsaraVideo Player

ApsaraVideo Player terintegrasi dengan Web RTS SDK dan dapat digunakan untuk memutar aliran RTS. ApsaraVideo Player memiliki logika bawaan untuk degradasi protokol otomatis. Anda hanya perlu menyediakan URL berdasarkan protokol terdegradasi untuk memicu logika ini.

Catatan

  /**
   * Secara default, ApsaraVideo Player memutar aliran RTS dari URL sumber. Jika pemutaran gagal, ApsaraVideo Player secara otomatis memutar aliran dari URL yang diberikan oleh rtsFallbackSource, seperti URL HLS.
   * Skenario di mana protokol terdegradasi mungkin digunakan:
   * 1. Browser tidak mendukung RTS. ApsaraVideo Player menggunakan protokol terdegradasi untuk memutar aliran.
   * 2. Permintaan sinyal gagal karena URL sumber tidak valid, konfigurasi HTTPS tidak valid, atau konfigurasi RTS tidak valid. ApsaraVideo Player menggunakan protokol terdegradasi untuk memutar aliran.
   * 3. Waktu mulai pemutaran habis atau aliran terputus selama pemutaran. ApsaraVideo Player mencoba pemutaran ulang berdasarkan kebijakan kustom. Jika percobaan ulang gagal, ApsaraVideo Player menggunakan protokol terdegradasi untuk memutar aliran.
   **/

  var options = {
    "id": "player-con",
    "source": "URL pemutaran RTS.",
    "rtsFallbackSource": "URL berdasarkan protokol terdegradasi, seperti HLS.",
    "width": "100%",
    "height": "500px",
    "autoplay": true,
    "isLive": true,
    "playsinline": true,
    "skipRtsSupportCheck": false, // Anda dapat menyetel nilainya menjadi true untuk melewati pemeriksaan dan memaksa menggunakan RTS jika browser tidak ada dalam daftar yang dijelaskan dalam topik berikut: ApsaraVideo Live > Panduan Pengguna > Streaming Waktu Nyata > Web RTS SDK > Web RTS SDK untuk penarikan aliran > Integrasikan Web RTS SDK dengan pemain lain > Gambaran SDK. Operasi ini dapat menyebabkan risiko. Lakukan pengujian penuh sebelum melakukan operasi ini.

    /**
     * Jika penarikan aliran RTS habis waktu, percobaan ulang dilakukan secara default.
     * Parameter berikut digunakan untuk mengontrol kebijakan percobaan ulang sebelum protokol terdegradasi digunakan. Misalnya, jika aliran tidak dapat ditarik setelah 3.000 milidetik, percobaan ulang dilakukan. Jika aliran masih tidak dapat ditarik setelah 3.000 milidetik lagi, protokol terdegradasi digunakan. Total periode tunggu adalah 6.000 milidetik.
     **/
    // Periode waktu setelah percobaan ulang dilakukan jika aliran RTS gagal ditarik. Nilai default: 3000. Unit: milidetik.
    // rtsLoadDataTimeout: 2000,

    // Jumlah percobaan ulang untuk penarikan aliran RTS yang gagal. Nilai default: 5. Kami merekomendasikan Anda menyetel parameter ini menjadi 1. Dengan cara ini, total periode tunggu dapat dikurangi.
    liveRetry: 1,
  };

  var player = new Aliplayer(options, function () {/* pemain siap */});

  // Acara yang dipicu saat protokol terdegradasi digunakan.
  player.on('rtsFallback', function(event) {
    // event.paramData.reason Alasan degradasi.
    // event.paramData.fallbackUrl URL berdasarkan protokol terdegradasi.
  })

Apakah saya bisa menggunakan Web RTS SDK di mini program WeChat?

Anda tidak dapat menggunakan Web RTS SDK di mini program WeChat asli karena mini program WeChat tidak dapat mengurai protokol sinyal RTS. Namun, Anda dapat menyematkan halaman web yang terintegrasi dengan SDK ke dalam WebView mini program WeChat.