Mulai memutar video menggunakan ApsaraVideo Player SDK untuk Android.
Prasyarat
Anda telah menyelesaikan integrasi SDK untuk ApsaraVideo Player untuk Android.
Proyek sampel open-source
Untuk contoh kode yang lebih lengkap, lihat modul BasicPlayback dalam API-Example. Proyek sampel Android berbasis Java ini membantu Anda mengintegrasikan fitur inti pemutar dengan cepat.
Prosedur
Langkah 1: Buat pemutar
Buat instans AliPlayer menggunakan kelas AliPlayerFactory.
// Buat instans pemutar.
AliPlayer mAliPlayer = AliPlayerFactory.createAliPlayer(context);
// Masukkan traceId.
// Opsional: Gunakan fitur Tracing Analysis. Jika terjadi pengecualian selama pemutaran video dengan ApsaraVideo Player SDK, fitur ini melakukan tracing end-to-end atas pemutaran abnormal untuk pengguna atau session tertentu. Hal ini membantu Anda mendiagnosis masalah dengan cepat dan meningkatkan administrasi pengalaman pemutaran.
// Tentukan nilai traceId. Nilai ini harus merupakan pengenal unik untuk pengguna atau perangkat Anda, seperti ID pengguna bisnis Anda, atau ID perangkat seperti International Mobile Equipment Identity (IMEI) atau identifier for advertisers (IDFA).
mAliPlayer.setTraceId("traceId");
Pemantauan kualitas pemutaran, Tracing Analysis, dan statistik pemutaran video bergantung pada pelaporan log instrumentasi. Pemantauan kualitas pemutaran menyediakan data tentang kualitas pemutaran secara keseluruhan. Tracing Analysis melokalisasi pengguna atau perangkat tertentu, menganalisis perilaku pemutaran mereka, dan membantu Anda mengidentifikasi masalah seperti error pemutaran dengan cepat.
Fitur yang tersedia saat membuat pemutar bergantung pada konfigurasi parameter setTraceId:
-
Jika Anda tidak mengatur parameter
setTraceId(default): Pelaporan log instrumentasi diaktifkan. Anda dapat menggunakan fitur pemantauan kualitas pemutaran dan statistik pemutaran video. Fitur Tracing Analysis tidak tersedia. -
Jika Anda mengatur parameter
setTraceIdke suatu traceId: Nilai traceId ditentukan oleh pengguna dan harus merupakan pengenal unik untuk pengguna atau perangkat Anda, seperti ID pengguna bisnis Anda atau ID perangkat seperti International Mobile Equipment Identity (IMEI) atau identifier for advertisers (IDFA). Setelah Anda mengatur traceId, pelaporan log instrumentasi diaktifkan. Anda dapat menggunakan fitur pemantauan kualitas pemutaran, Tracing Analysis, dan statistik pemutaran video. -
Jika Anda mengatur parameter
setTraceIdkeDisableAnalytics: Pelaporan log instrumentasi dinonaktifkan. Fitur pemantauan kualitas pemutaran, Tracing Analysis, dan statistik pemutaran video tidak tersedia.
Langkah 2: Atur tampilan pemutaran
Pemutar mendukung tiga jenis tampilan: AliDisplayView, SurfaceView, dan TextureView.
-
AliDisplayView: Komponen tampilan terpadu yang dikapsulasi oleh SDK dengan antarmuka standar. Cocok untuk integrasi cepat dan skenario UI sederhana.
-
SurfaceView / TextureView: Tampilan native yang memberikan lapisan aplikasi kontrol penuh atas siklus hidup tampilan dan logika rendering. Cocok untuk hierarki tampilan kompleks atau skenario yang memerlukan kontrol detail halus.
-
Deklarasikan tampilan dalam file XML.
AliDisplayView
<!-- Tampilan rendering pemutar --> <com.aliyun.player.videoview.AliDisplayView android:id="@+id/ali_display_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" />SurfaceView
<!-- Tampilan rendering pemutar --> <SurfaceView android:id="@+id/surface_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" />TextureView
<!-- Tampilan rendering pemutar --> <TextureView android:id="@+id/texture_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" /> -
Atur tampilan.
AliDisplayView
Panggil metode
setDisplayViewpemutar untuk menyambungkan tampilan.AliDisplayView mAliDisplayView = findViewById(R.id.display_view); // Atur jenis tampilan pemutar menggunakan setPreferDisplayView(). mAliDisplayView.setPreferDisplayView(AliDisplayView.DisplayViewType.SurfaceView); mAliPlayer.setDisplayView(mAliDisplayView);SurfaceView
Panggil metode
setSurfacepemutar untuk menyambungkan tampilan.SurfaceView mSurfaceView = findViewById(R.id.surface_view); mSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(@NonNull SurfaceHolder holder) { mAliPlayer.setSurface(holder.getSurface()); } @Override public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) { mAliPlayer.surfaceChanged(); } @Override public void surfaceDestroyed(@NonNull SurfaceHolder holder) { mAliPlayer.setSurface(null) } });TextureView
Panggil metode
setSurfacepemutar untuk menyambungkan tampilan.TextureView mTextureView = findViewById(R.id.texture_view); mTextureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { @Override public void onSurfaceTextureAvailable(@NonNull SurfaceTexture surface, int width, int height) { mAliPlayer.setSurface(new Surface(surface)); } @Override public void onSurfaceTextureSizeChanged(@NonNull SurfaceTexture surface, int width, int height) { mAliPlayer.surfaceChanged(); } @Override public boolean onSurfaceTextureDestroyed(@NonNull SurfaceTexture surface) { mAliPlayer.setSurface(null); return true; } @Override public void onSurfaceTextureUpdated(@NonNull SurfaceTexture surface) { } });
Langkah 3: Atur sumber pemutaran
Pemutaran VidAuth (Direkomendasikan)
VidAuth vidAuth = new VidAuth();
vidAuth.setVid("Your Vid");// Wajib. ID video (VideoId).
vidAuth.setPlayAuth("<yourPlayAuth>");// Wajib. Kredensial pemutaran. Panggil operasi GetVideoPlayAuth dari ApsaraVideo VOD untuk menghasilkan kredensial ini.
vidAuth.setRegion("The region ID");// Untuk ApsaraVideo Player SDK V5.5.5.0 dan versi lebih baru, parameter ini sudah tidak digunakan lagi. Anda tidak perlu mengatur wilayah karena pemutar akan menguraikannya secara otomatis. Untuk versi sebelum V5.5.5.0, parameter ini wajib diisi. Parameter ini menentukan wilayah tempat ApsaraVideo VOD diaktifkan. Nilai default adalah cn-shanghai.
// vidAuth.setAuthTimeout(3600); // Periode validitas URL pemutaran, dalam detik. Nilai ini menggantikan periode validitas untuk Penandatanganan URL yang diatur di konsol ApsaraVideo VOD. Jika Anda tidak mengirimkan parameter ini, nilai default 3600 akan digunakan. Jika Anda mengatur parameter ini, pastikan periode tersebut lebih panjang daripada durasi video agar URL pemutaran tidak kedaluwarsa sebelum pemutaran selesai.
mAliPlayer.setDataSource(vidAuth);
Pemutaran VidSts
VidSts vidSts = new VidSts();
vidSts.setVid("Your Vid");// Wajib. ID video (VideoId).
vidSts.setAccessKeyId("<yourAccessKeyId>");// Wajib. ID AccessKey dari pasangan AccessKey temporary. Hasilkan dengan memanggil operasi AssumeRole dari Security Token Service (STS).
vidSts.setAccessKeySecret("<yourAccessKeySecret>");// Wajib. Rahasia AccessKey dari pasangan AccessKey temporary. Hasilkan dengan memanggil operasi AssumeRole dari STS.
vidSts.setSecurityToken("<yourSecurityToken>");// Wajib. Token STS. Hasilkan dengan memanggil operasi AssumeRole dari STS.
vidSts.setRegion("The region ID");// Wajib. Wilayah tempat ApsaraVideo VOD diaktifkan. Nilai default adalah cn-shanghai.
mAliPlayer.setDataSource(vidSts);
Pemutaran UrlSource
// Buat objek sumber pemutaran dan atur URL pemutaran.
UrlSource urlSource = new UrlSource();
// Wajib. URL pemutaran. Dapat berupa URL video sesuai permintaan (VOD) pihak ketiga, URL pemutaran dari ApsaraVideo VOD, atau URL video lokal.
urlSource.setUri("The playback URL");
mAliPlayer.setDataSource(urlSource);
Untuk opsi sumber pemutaran lainnya, lihat Fitur Dasar.
Langkah 4: Mulai pemutaran
// Persiapkan pemutaran.
mAliPlayer.prepare();
// Mulai pemutaran.
mAliPlayer.start();
Langkah 5: Akhiri pemutaran
Sebelum menghentikan pemutaran, lepaskan tampilan pemutar untuk melepas sumber daya rendering. Pilih metode pelepasan berdasarkan jenis tampilan pemutar yang Anda gunakan:
-
SurfaceView / TextureView: Panggil
setSurface(null)untuk melepas tampilan. -
AliDisplayView: Panggil
setDisplayView(null)untuk melepas tampilan.
Kode lengkap untuk mengakhiri pemutaran adalah sebagai berikut:
// Lepaskan tampilan pemutar.
// Untuk SurfaceView / TextureView:
aliPlayer.setSurface(null);
// Untuk AliDisplayView:
aliPlayer.setDisplayView(null);
// Hentikan pemutaran.
mAliPlayer.stop();
// Hancurkan pemutar.
mAliPlayer.release();
// Kosongkan referensi untuk menghindari memory leak.
mAliPlayer = null;
Referensi
Untuk kontrol pemutaran, pendengar event, dan kemampuan pemutar lainnya, lihat Fitur Dasar.