Topik ini menjelaskan jenis-jenis sumber video yang didukung oleh AliPlayerKit dan cara menggunakannya.
Konsep utama
Apa itu sumber video?
Sumber video adalah sumber data untuk pemutaran video yang menentukan cara video diambil dan diotorisasi.
AliPlayerKit mendukung tiga jenis sumber video:
Jenis sumber video | Metode otorisasi | Kasus penggunaan |
VidAuth | VID + PlayAuth | Direkomendasikan untuk sebagian besar lingkungan produksi. |
VidSts | VID + kredensial temporary STS | Skenario keamanan tingkat tinggi. |
URL | URL langsung | Resource publik, pengujian, dan demo. |
Cara memilih jenis sumber video
Pilih jenis sumber video berdasarkan skenario bisnis dan kebutuhan keamanan Anda:
Kebutuhan | Jenis yang direkomendasikan | Deskripsi |
Memerlukan otorisasi | VidAuth (Direkomendasikan) | Otorisasi yang simple dan mudah diintegrasikan. |
Kebutuhan keamanan tinggi | VidSts | Menggunakan kredensial temporary dan mendukung kontrol akses detail halus. |
Resource video publik | URL | Tidak memerlukan otorisasi; mudah digunakan. |
Fitur
Tantangan yang diatasi
Metode konfigurasi yang tidak konsisten untuk berbagai jenis sumber video.
Manajemen kredensial otorisasi yang kompleks.
Kurangnya mekanisme validasi terpadu untuk sumber video.
Kesulitan dalam membedakan berbagai jenis resource video.
Nilai inti
Fitur | Deskripsi |
Abstraksi terpadu | Semua jenis sumber video mewarisi dari kelas dasar |
Pembuatan pabrik |
|
Keamanan tipe | Anotasi |
Validasi konfigurasi | Metode |
Kemampuan inti
Kemampuan | Deskripsi |
Pemutaran VidAuth | Mengotorisasi pemutaran menggunakan video ID (VID) dan PlayAuth. |
Pemutaran VidSts | Mengotorisasi pemutaran menggunakan VID dan kredensial temporary STS. |
Pemutaran URL | Memutar video menggunakan URL langsung. |
Validasi parameter | Secara otomatis memvalidasi parameter yang diperlukan saat pembuatan. |
Identifier unik | Setiap sumber video memiliki MediaId unik, memungkinkan instans player digunakan kembali dari pool. |
Jenis sumber video
Mode VidAuth (direkomendasikan)
Mengotorisasi pemutaran menggunakan video ID (VID) dan PlayAuth.
Kasus penggunaan:
Resource video yang memerlukan otorisasi.
Pemutaran video di sebagian besar lingkungan produksi.
Skema yang memerlukan metode otorisasi yang sederhana dan aman.
Fitur:
Otorisasi yang sederhana dan mudah diintegrasikan.
Menyediakan keamanan dasar.
Direkomendasikan untuk sebagian besar skenario bisnis.
Parameter:
Parameter | Tipe | Wajib | Deskripsi |
vid | String | Ya | Video ID. |
playAuth | String | Ya | PlayAuth. |
Contoh:
// Membuat sumber video tipe VidAuth
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(
"your_video_id", // Video ID
"your_play_auth" // PlayAuth
);
// Membuat model player
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(videoSource)
.build(); Mode VidSts
Mengotorisasi pemutaran menggunakan video ID (VID) dan token dari Alibaba Cloud Security Token Service (STS), memberikan keamanan dan kontrol akses yang lebih baik.
Kasus penggunaan:
Skema yang memerlukan kredensial akses temporary.
Resource video dengan kebutuhan keamanan tinggi.
Skema yang memerlukan kontrol akses detail halus.
Fitur:
Menggunakan kredensial temporary untuk keamanan tinggi.
Mendukung kontrol akses detail halus.
Cocok untuk skenario dengan tingkat keamanan tinggi.
Parameter:
Parameter | Tipe | Wajib | Deskripsi |
vid | String | Ya | Video ID. |
accessKeyId | String | Ya | Access key ID. |
accessKeySecret | String | Ya | Access key secret. |
securityToken | String | Ya | Security token. |
region | String | Tidak | Wilayah. |
Contoh:
// Membuat sumber video tipe VidSts
VideoSource.VidStsSource videoSource = VideoSourceFactory.createVidStsSource(
"your_video_id", // Video ID
"your_access_key_id", // Access key ID
"your_access_key_secret", // Access key secret
"your_security_token", // Security token
"cn-shanghai" // Wilayah (opsional)
);
// Membuat model player
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(videoSource)
.build(); Mode URL
Memutar video menggunakan URL langsung. Mode ini cocok untuk resource video yang dapat diakses publik.
Kasus penggunaan:
Resource video publik yang tidak memerlukan otorisasi.
Skema pengujian dan demonstrasi.
Kebutuhan pemutaran video yang sederhana.
Fitur:
Mudah digunakan; hanya memerlukan URL video.
Tidak memerlukan otorisasi tambahan.
Memberikan keamanan lebih rendah dan tidak cocok untuk konten sensitif.
Parameter:
Parameter | Type | Wajib | Deskripsi |
url | String | Ya | URL video. |
Contoh:
// Membuat sumber video tipe URL
VideoSource.UrlSource videoSource = VideoSourceFactory.createUrlSource(
"https://example.com/video.mp4"
);
// Membuat model player
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(videoSource)
.build();Penggunaan dasar
Alur pemutaran dasar
// 1. Membuat sumber video (mode VidAuth direkomendasikan)
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(
"your_video_id",
"your_play_auth"
);
// 2. Membuat model player
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(videoSource)
.coverUrl("https://example.com/cover.jpg")
.videoTitle("Sample Video")
.sceneType(SceneType.VOD)
.autoPlay(true)
.build();
// 3. Membuat controller
AliPlayerController controller = new AliPlayerController(this);
// 4. Menyambungkan controller ke tampilan player
controller.configure(model);
playerView.attach(controller); Beralih sumber video
// Sebelum beralih video, lepas controller saat ini
playerView.detach();
// Membuat sumber video baru
VideoSource.VidAuthSource newSource = VideoSourceFactory.createVidAuthSource(
"new_video_id",
"new_play_auth"
);
// Membuat model player baru
AliPlayerModel newModel = new AliPlayerModel.Builder()
.videoSource(newSource)
.build();
// Membuat controller baru dan menyambungkannya
AliPlayerController newController = new AliPlayerController(this);
playerView.attach(newController, newModel); Penggunaan lanjutan
Memvalidasi sumber video
Sebelum mengonfigurasi player, Anda dapat memanggil metode isValid() untuk memverifikasi konfigurasi sumber video:
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(vid, playAuth);
if (videoSource.isValid()) {
// Konfigurasi valid; Anda dapat melanjutkan.
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(videoSource)
.build();
playerView.attach(controller, model);
} else {
// Konfigurasi tidak valid. Periksa parameter.
Log.e(TAG, "Konfigurasi sumber video tidak valid");
} Mendapatkan otorisasi dari server Anda
Untuk menghindari hard-coding data sensitif, ambil informasi otorisasi dari server Anda:
// Direkomendasikan: Dapatkan PlayAuth dari server Anda
public void playVideo(String videoId) {
// Meminta PlayAuth dari server
apiService.getPlayAuth(videoId, new Callback<PlayAuthResponse>() {
@Override
public void onSuccess(PlayAuthResponse response) {
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(
videoId,
response.getPlayAuth()
);
// Mulai pemutaran...
}
@Override
public void onError(Exception e) {
Log.e(TAG, "Gagal mendapatkan playAuth", e);
}
});
} Menangani kedaluwarsa token STS
Dalam mode VidSts, tangani kedaluwarsa security token:
// Periksa apakah token akan segera kedaluwarsa
if (isTokenExpiringSoon(securityToken)) {
// Refresh token
refreshSecurityToken(new TokenCallback() {
@Override
public void onTokenRefreshed(String newToken) {
// Buat ulang sumber video dengan token baru
VideoSource.VidStsSource videoSource = VideoSourceFactory.createVidStsSource(
vid, accessKeyId, accessKeySecret, newToken, region
);
// Lanjutkan pemutaran...
}
});
}Praktik terbaik
Memilih jenis sumber video
Skenario | Jenis yang direkomendasikan | Alasan |
Skenario bisnis umum | VidAuth (Direkomendasikan) | Otorisasi simple dengan keamanan memadai. |
Skenario keamanan tinggi | VidSts | Menggunakan kredensial temporary dan mendukung kontrol akses detail halus. |
Resource publik | URL | Tidak memerlukan otorisasi; mudah digunakan. |
Rekomendasi keamanan
Rekomendasi | Deskripsi |
Jangan hard-code informasi sensitif | Hindari hard-coding informasi sensitif seperti |
Dapatkan otorisasi dari server Anda | Ambil informasi otorisasi dari API sisi server dan berikan ke client. |
Refresh kredensial tepat waktu | Token STS untuk VidSts memiliki masa berlaku. Refresh tepat waktu untuk menghindari kegagalan pemutaran. |
Gunakan HTTPS | Gunakan HTTPS untuk mengamankan data saat transit. |
Penanganan error
Tangani error saat membuat sumber video:
try {
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(vid, playAuth);
if (!videoSource.isValid()) {
// Tangani konfigurasi tidak valid
showError("Konfigurasi sumber video tidak valid");
return;
}
// Gunakan sumber video
playVideo(videoSource);
} catch (IllegalArgumentException e) {
// Tangani error parameter
Log.e(TAG, "Parameter sumber video tidak valid", e);
showError("Error parameter: " + e.getMessage());
} Contoh kode
Contoh lengkap tersedia di proyek pada playerkit-examples/example-video-source.
Fitur contoh
Fitur | Deskripsi |
URL Playback | Menunjukkan pemutaran menggunakan URL langsung. |
VidAuth Playback | Menunjukkan pemutaran menggunakan VidAuth. |
VidSts Playback | Menunjukkan pemutaran menggunakan VidSts. |
Menjalankan contoh
Di aplikasi demo, pilih contoh Video Source untuk melihat hasilnya.
Referensi API
Metode VideoSourceFactory
Metode | Deskripsi |
| Membuat sumber video tipe VidAuth (Direkomendasikan). |
| Membuat sumber video tipe VidSts. |
| Membuat sumber video tipe URL. |
Metode VideoSource
Metode | Deskripsi |
| Mendapatkan tipe sumber video. |
| Memvalidasi apakah konfigurasi valid. |
| Mendapatkan identifier unik. |
| Mengonversi sumber menjadi map konfigurasi. |
Konstanta SourceType
Konstanta | Nilai | Deskripsi |
| 0 | Tipe VidAuth. |
| 1 | Tipe VidSts. |
| 2 | Tipe URL. |
Cara kerja
Aturan pembuatan MediaId
Jenis sumber video | Format MediaId |
VidAuth |
|
VidSts |
|
URL |
|
MediaId memungkinkan penggunaan kembali instans player. Sumber video dengan MediaId yang sama berbagi instans player yang sama.
FAQ
Memilih jenis sumber video
Untuk konten yang memerlukan otorisasi dengan kebutuhan keamanan standar: Gunakan mode VidAuth (Direkomendasikan).
Untuk konten yang memerlukan keamanan tinggi dan kredensial akses temporary: Gunakan mode VidSts.
Untuk video publik: Gunakan mode URL.
VidAuth vs. VidSts
Fitur | VidAuth | VidSts |
Metode otorisasi | PlayAuth | Kredensial temporary STS |
Jumlah parameter | 2 | 4 hingga 5 |
Tingkat keamanan | Sedang | Tinggi |
Kasus penggunaan | Sebagian besar skenario bisnis | Skenario keamanan tinggi |
Rekomendasi | Direkomendasikan | Untuk kebutuhan khusus |
Menangani kegagalan pembuatan
Periksa hal berikut:
Periksa parameter null atau tidak valid.
Periksa bahwa format URL benar (untuk mode URL).
Periksa bahwa informasi otorisasi valid (untuk VidAuth dan VidSts).
Periksa koneksi jaringan yang stabil.
Kesalahan umum
Kesalahan 1: Hard-coding informasi sensitif di sisi client
Kode salah:
// Jangan hard-code informasi sensitif di sisi client
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(
"video_id",
"hardcoded_play_auth_value" // Risiko keamanan!
);
Pendekatan benar:
// Ambil informasi otorisasi dari server
String playAuth = fetchPlayAuthFromServer(videoId);
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(videoId, playAuth);Kesalahan 2: Menggunakan sumber video tanpa validasi
Kode salah:
// Menggunakan tanpa validasi
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(vid, playAuth);
playerView.attach(controller, createModel(videoSource)); // Konfigurasi mungkin tidak validPendekatan benar:
// Validasi sebelum digunakan
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(vid, playAuth);
if (videoSource.isValid()) {
playerView.attach(controller, createModel(videoSource));
} else {
showError("Konfigurasi sumber video tidak valid");
}
Kesalahan 3: Tidak menangani kedaluwarsa token STS
Kode salah:
// Kedaluwarsa token tidak ditangani
VideoSource.VidStsSource videoSource = VideoSourceFactory.createVidStsSource(
vid, accessKeyId, accessKeySecret, expiredToken, region
);
// Pemutaran gagal! Token telah kedaluwarsa.Pendekatan benar:
// Periksa validitas token dan refresh jika diperlukan
if (isTokenExpired(securityToken)) {
securityToken = refreshToken();
}
VideoSource.VidStsSource videoSource = VideoSourceFactory.createVidStsSource(
vid, accessKeyId, accessKeySecret, securityToken, region
);Debugging
Periksa log: Filter Logcat menggunakan
tag:AliPlayerKit.Panggil toString(): Metode
toString()dari sumber video menampilkan informasi konfigurasi dengan data sensitif yang disembunyikan.Validasi parameter: Gunakan metode
isValid()untuk memvalidasi konfigurasi.Periksa jaringan: Pastikan resource video dapat diakses.