Topik ini menjelaskan cara menggunakan ApsaraVideo Player SDK untuk iOS guna mengimplementasikan RTS.
Prasyarat
CocoaPods telah terpasang di lingkungan Anda.
Mengintegrasikan SDK
Tambahkan ApsaraVideo Player SDK sebagai dependensi menggunakan CocoaPods.
Buka jendela terminal.
Arahkan ke direktori proyek Anda dan buat Podfile.
pod init
Edit Podfile untuk menambahkan dependensi yang diperlukan.
player_sdk_version = 'x.x.x' # Gunakan versi terbaru. rts_sdk_version = '7.11.0' # Nomor versi independen. Ini adalah versi terbaru. # ApsaraVideo Player SDK pod 'AliPlayerSDK_iOS' , player_sdk_version # Lapisan jembatan (AlivcArtc) antara pemutar dan komponen RTS. Nomor versi harus sama dengan nomor versi pemutar. Ini harus diintegrasikan bersama komponen RTS. pod 'AliPlayerSDK_iOS_ARTC' , player_sdk_version # Komponen RTS pod 'RtsSDK' , rts_sdk_versionPentingNomor versi lapisan jembatan (AlivcArtc) harus sesuai dengan nomor versi pemutar. Anda harus mengintegrasikan lapisan jembatan ini karena menghubungkan pemutar ke komponen RTS.
Untuk informasi selengkapnya tentang versi pemutar, lihat Unduh SDK. Disarankan menggunakan ApsaraVideo Player V7.11.0 atau yang lebih baru. Versi minimum yang didukung adalah V5.4.5.0.
Untuk informasi selengkapnya tentang masalah umum, lihat FAQ tentang ApsaraVideo Player untuk iOS.
Instal SDK. Setelah menjalankan perintah, file .xcworkspace akan dihasilkan. Kehadiran file ini menunjukkan bahwa SDK telah berhasil diintegrasikan.
pod install
Gunakan API ApsaraVideo Player SDK
Anda dapat memanggil API ApsaraVideo Player SDK untuk mengimplementasikan fitur RTS. Untuk informasi selengkapnya tentang fitur-fitur ApsaraVideo Player SDK, lihat Fitur lanjutan dan Referensi API.
Kode berikut hanya merupakan contoh. Untuk informasi selengkapnya, lihat modul RTS playback dalam proyek API-Example. Proyek API-Example adalah demo Objective-C untuk ApsaraVideo Player SDK untuk iOS yang membantu pengembang mempelajari cara mengintegrasikan fitur inti SDK dengan cepat.
Saat menggunakan ApsaraVideo Player untuk penarikan aliran RTS, jangan panggil pause untuk menjeda siaran langsung. Sebagai gantinya, panggil stop untuk menghentikan pemutaran, lalu panggil prepare untuk memulainya kembali.
Operasi seek (seret) tidak didukung.
Buat player
Buat pemutar.
Buat instans AliPlayer.
// Buat instans pemutar. AliPlayer mAliPlayer = [[AliPlayer alloc] init]; // Buat kontainer tampilan untuk video pemutaran dan atur rendering view untuk pemutar. UIView playerView = [[UIView alloc] initWithFrame:self.view.bounds]; [self.view addSubview:playerView]; mAliPlayer.playerView = playerView; [mAliPlayer setTraceID:traceId];CatatanFitur-fitur pemutar seperti Pemantauan kualitas pemutaran (yang memungkinkan Anda melihat data tentang kualitas pemutaran keseluruhan), Pelacakan titik tunggal (yang memungkinkan Anda menemukan pengguna atau perangkat tertentu, menganalisis perilaku pemutaran mereka, dan mengidentifikasi masalah seperti pemutaran abnormal dengan cepat), serta Statistik pemutaran video, bergantung pada fitur pelaporan log instrumentasi.
Saat Anda membuat pemutar, fitur-fitur yang tersedia bervariasi tergantung pada pengaturan parameter
setTraceID:Jika Anda tidak meneruskan parameter
setTraceID(default): Fitur pelaporan log instrumentasi diaktifkan. Anda dapat menggunakan fitur pemantauan kualitas pemutaran dan statistik pemutaran video, tetapi tidak dapat menggunakan fitur pelacakan titik tunggal.Jika Anda meneruskan traceId ke parameter
setTraceID: Anda harus menentukan nilai traceId tersebut. traceId harus berupa pengenal unik untuk pengguna atau perangkat, seperti ID pengguna dari aplikasi Anda, International Mobile Equipment Identity (IMEI), atau identifier for advertisers (IDFA). Setelah Anda meneruskan traceId, fitur pelaporan log instrumentasi diaktifkan. Anda kemudian dapat menggunakan fitur pemantauan kualitas pemutaran, pelacakan titik tunggal, dan statistik pemutaran video.Jika Anda mengatur parameter
setTraceIDkeDisableAnalytics: Fitur pelaporan log instrumentasi dinonaktifkan. Anda tidak dapat menggunakan fitur pemantauan kualitas pemutaran, pelacakan titik tunggal, maupun statistik pemutaran video.
Atur sumber pemutaran.
Pemutar mendukung empat jenis sumber pemutaran: VidSts, VidAuth, VidMps, dan UrlSource. Untuk memutar video dari URL, gunakan UrlSource. Untuk menggunakan layanan RTS, Anda harus mengatur protokol URL menjadi
artc://.AVPUrlSource *urlSource = [[AVPUrlSource alloc] urlWithString:"artc://<URL streaming>"]; [mAliPlayer setUrlSource:urlSource];CatatanUntuk informasi selengkapnya tentang cara mengatur sumber pemutaran, lihat Fitur dasar.
Konfigurasikan parameter pemutaran.
Anda dapat mengonfigurasi parameter pemutaran untuk meningkatkan performa RTS.
CatatanApsaraVideo Player SDK V6.3.0 dan yang lebih baru mendukung konfigurasi optimal otomatis untuk pemutaran latensi rendah. Jika URL pemutaran dimulai dengan "artc://" dan Anda belum mengubah secara manual nilai
MaxDelayTime,HighBufferDuration, atauStartBufferDurationdariAVPConfig, SDK akan mengatur parameter-parameter tersebut secara otomatis menjadi 1000, 10, dan 10.Untuk menyesuaikan parameter ini, lihat contoh berikut:
//1. Dapatkan dan ubah konfigurasi. AVPConfig *config = mAliPlayer.getConfig; if ([playUrl hasPrefix:@"artc://"]) { // Latensi maksimum adalah 1 detik. [config setMaxDelayTime:1000]; // Durasi buffer saat startup pemutaran. [config setStartBufferDuration:10]; // Durasi buffer untuk pemulihan saat tersendat. [config setHighBufferDuration:10]; } else { // Gunakan konfigurasi default untuk config atau sesuaikan sendiri. } //2. Terapkan konfigurasi. [mAliPlayer setConfig:config];Mulai pemutaran.
// Persiapkan pemutaran. [mAliPlayer prepare]; // Setelah prepare dipanggil, panggil operasi start secara sinkron. Pemutaran akan dimulai secara otomatis setelah callback onPrepared selesai. [mAliPlayer start];
Kontrol pemutaran
ApsaraVideo Player SDK untuk iOS mendukung operasi umum seperti memulai pemutaran dan mencari ke waktu tertentu.
Mulai Pemutaran
Anda dapat memulai pemutaran video menggunakan API start. Berikut contoh kodenya:
[mAliPlayer start];Hentikan Pemutaran
Anda dapat menghentikan pemutaran video menggunakan API stop. Berikut contoh kodenya:
[mAliPlayer stop];Hapus Pemain
Anda dapat menghapus instans pemutar secara sinkron atau asinkron. Berikut contoh kodenya:
// Hapus secara sinkron. API stop dipanggil secara internal secara otomatis.
[mAliPlayer destroy];
// Hapus secara asinkron. API stop dipanggil secara internal secara otomatis.
[mAliPlayer destroyAsync];Saat Anda memanggil API hapus sinkron, sistem hanya akan memberikan respons setelah semua sumber daya pemutar benar-benar dilepas. Jika diperlukan respons antarmuka yang cepat, gunakan API hapus asinkron dan perhatikan poin-poin berikut:
Jangan melakukan operasi lain pada objek pemain selama proses hapus asinkron.
Jangan menghentikan pemutar secara manual sebelum memanggil API hapus asinkron karena proses tersebut sudah mencakup prosedur penghentian asinkron.
Aksesibilitas
Aktifkan atau nonaktifkan log
// Aktifkan log. [mAliPlayer setEnableLog:YES]; [mAliPlayer setLogCallbackInfo:LOG_LEVEL_TRACE callbackBlock:nil]; // Nonaktifkan log. [mAliPlayer setEnableLog:NO]; [mAliPlayer setLogCallbackInfo:LOG_LEVEL_NONE callbackBlock:nil];Fallback siaran langsung
CatatanFallback kegagalan pemutaran hanya berlaku untuk skenario timeout. Jika solusi fallback dikonfigurasi, sistem akan melakukan fallback pemutaran saat terjadi timeout. Jika tidak, callback onError pemutar akan dipicu. Pengecualian seperti error 404, error 403, atau koneksi streamer terputus tidak memicu fallback.
Fallback RTS otomatis menggunakan nama domain yang sama untuk fallback dari RTS ke FLV. Jika nama domain RTS dan FLV Anda berbeda, konfigurasikan solusi fallback RTS kustom untuk menentukan nama domain FLV tujuan.
Fallback RTS otomatis (diaktifkan secara default)
Saat Anda memutar video dari URL RTS, jika fallback RTS kustom tidak dikonfigurasi dan penarikan aliran RTS gagal, sistem secara otomatis melakukan fallback ke URL FLV default yang sesuai dengan URL RTS tersebut untuk pemutaran. Berikut contoh kodenya:
// 1: diaktifkan. 0: dinonaktifkan. Secara default, fitur ini diaktifkan. [AliPlayerGlobalSettings setOption:ALLOW_PRE_RENDER valueInt:1];Fallback RTS kustom
Saat Anda memutar video dari URL RTS, Anda dapat mengatur URL fallback, seperti URL HLS atau FLV. Jika penarikan aliran RTS gagal, sistem secara otomatis melakukan fallback ke URL tersebut untuk pemutaran.
// Atur sumber downgradeUrl fallback. AVPUrlSource *urlSource = [[AVPUrlSource alloc] urlWithString:downgradeUrl]; // Opsional. Konfigurasi item lain untuk config. AVPConfig *config = [mAliPlayer getConfig]; // Atur URL fallback. [mAliPlayer enableDowngrade:urlSource config:config];
Dapatkan TraceID
Setiap pemutaran latensi rendah memiliki traceId yang dapat digunakan untuk troubleshooting. Anda dapat memperoleh traceId melalui callback event pemutar.
// Dengarkan callback onPlayerEvent dari pemain dan parse pesan DemuxerTraceID. - (void)onPlayerEvent:(AliPlayer*)mAliPlayer eventWithString:(AVPEventWithString)eventWithString description:(NSString *)description { switch (eventWithString) { case EVENT_PLAYER_DEMUXER_TRACE_ID: { NSString *traceId = description; } break; default: break; } }