Topik ini menjelaskan cara memulai pemutaran 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 ini merupakan proyek Android berbasis Java untuk ApsaraVideo Player SDK yang membantu Anda mengintegrasikan fitur inti SDK dengan cepat.
Prosedur
Langkah 1: Buat pemutar
Buat instans AliPlayer menggunakan kelas AliPlayerFactory.
// Buat instans pemutar.
AliPlayer mAliPlayer = AliPlayerFactory.createAliPlayer(context);
// Teruskan 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 berupa 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 fitur statistik pemutaran video pemutar bergantung pada pelaporan log instrumentasi. Pemantauan kualitas pemutaran menyediakan data mengenai 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.
Saat membuat pemutar, fitur yang tersedia 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 pengguna dan harus berupa 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 kemudian 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 display
Pemutar mendukung tiga jenis tampilan: AliDisplayView, SurfaceView, dan TextureView.
AliDisplayView: Komponen tampilan terpadu yang dienkapsulasi oleh SDK. Tampilan ini menyediakan antarmuka standar dan siap digunakan, cocok untuk integrasi cepat dan skenario UI sederhana.
SurfaceView / TextureView: Tampilan native. Lapisan aplikasi dapat sepenuhnya mengelola siklus hidup dan logika rendering tampilan. Tampilan ini cocok untuk hierarki tampilan kompleks atau skenario yang memerlukan kontrol detail halus dan fleksibilitas lebih besar.
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 pemutaran.
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 (Disarankan)
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-nya 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 meneruskan 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-nya 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 informasi lebih lanjut tentang cara mengatur sumber pemutaran, lihat Fitur Dasar.
Langkah 4: Mulai pemutaran
// Persiapkan pemutaran.
mAliPlayer.prepare();
// Mulai pemutaran.
mAliPlayer.start();Langkah 5: Akhiri pemutaran
// Hentikan pemutaran.
mAliPlayer.stop();
// Hancurkan pemutar.
mAliPlayer.release();
// Kosongkan referensi untuk menghindari memory leak.
mAliPlayer = null;Referensi
Untuk informasi selengkapnya tentang fitur dasar pemutar, seperti kontrol pemutaran dan pendengar event, lihat Fitur Dasar.