All Products
Search
Document Center

ApsaraVideo VOD:Dukungan untuk multiple video sources

Last Updated:Sep 11, 2026

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 VideoSource, menyediakan antarmuka terpadu.

Pembuatan pabrik

VideoSourceFactory menyederhanakan proses pembuatan dan secara otomatis memvalidasi parameter.

Keamanan tipe

Anotasi @SourceType menjamin keamanan tipe.

Validasi konfigurasi

Metode isValid() memvalidasi apakah konfigurasi valid.

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 playAuth dan accessKeySecret di sisi client.

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

createVidAuthSource(vid, playAuth)

Membuat sumber video tipe VidAuth (Direkomendasikan).

createVidStsSource(vid, accessKeyId, accessKeySecret, securityToken, region)

Membuat sumber video tipe VidSts.

createUrlSource(url)

Membuat sumber video tipe URL.

Metode VideoSource

Metode

Deskripsi

getSourceType()

Mendapatkan tipe sumber video.

isValid()

Memvalidasi apakah konfigurasi valid.

getMediaId()

Mendapatkan identifier unik.

toMap()

Mengonversi sumber menjadi map konfigurasi.

Konstanta SourceType

Konstanta

Nilai

Deskripsi

VID_AUTH

0

Tipe VidAuth.

VID_STS

1

Tipe VidSts.

URL

2

Tipe URL.

Cara kerja

Aturan pembuatan MediaId

Jenis sumber video

Format MediaId

VidAuth

vidauth:{vid}

VidSts

vidsts:{vid}

URL

url:{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:

  1. Periksa parameter null atau tidak valid.

  2. Periksa bahwa format URL benar (untuk mode URL).

  3. Periksa bahwa informasi otorisasi valid (untuk VidAuth dan VidSts).

  4. 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 valid

Pendekatan 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

  1. Periksa log: Filter Logcat menggunakan tag:AliPlayerKit.

  2. Panggil toString(): Metode toString() dari sumber video menampilkan informasi konfigurasi dengan data sensitif yang disembunyikan.

  3. Validasi parameter: Gunakan metode isValid() untuk memvalidasi konfigurasi.

  4. Periksa jaringan: Pastikan resource video dapat diakses.