全部产品
Search
文档中心

ApsaraVideo Live:Gunakan Java SDK

更新时间:Jan 30, 2026

Topik ini menjelaskan cara menggunakan kit pengembangan perangkat lunak (SDK) sisi server ApsaraVideo Live untuk Java dan menyediakan contoh kode.

Prasyarat

  • Buat pengguna Resource Access Management (RAM) dan berikan izin yang diperlukan untuk mengakses API ApsaraVideo Live. Untuk informasi selengkapnya tentang cara memberikan izin, lihat Buat dan otorisasi pengguna RAM.

  • Dapatkan pasangan AccessKey. Pasangan AccessKey digunakan untuk verifikasi identitas saat Anda memanggil API sisi server. Untuk informasi selengkapnya tentang cara membuat pasangan AccessKey untuk pengguna RAM, lihat Buat pasangan AccessKey.

  • Siapkan lingkungan Java. Diperlukan Java 1.8 atau versi yang lebih baru.

Gunakan SDK

Instal SDK

Untuk menginstal SDK menggunakan Maven, tambahkan dependensi berikut ke file pom.xml dalam proyek Anda:

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>alibabacloud-live20161101</artifactId>
  <version>2.0.1</version>
</dependency>

Penggunaan

Kode contoh berikut menunjukkan cara menggunakan SDK untuk mengkueri konfigurasi snapshot dari aliran live.

// File ini dihasilkan secara otomatis, jangan mengeditnya. Terima kasih.
package demo;

import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.core.http.HttpClient;
import com.aliyun.core.http.HttpMethod;
import com.aliyun.core.http.ProxyOptions;
import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
import com.aliyun.sdk.service.live20161101.models.*;
import com.aliyun.sdk.service.live20161101.*;
import com.google.gson.Gson;
import darabonba.core.RequestConfiguration;
import darabonba.core.client.ClientOverrideConfiguration;
import darabonba.core.utils.CommonUtil;
import darabonba.core.TeaPair;

//import javax.net.ssl.KeyManager;
//import javax.net.ssl.X509TrustManager;
import java.net.InetSocketAddress;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.io.*;

public class DescribeLiveSnapshotConfig {
    public static void main(String[] args) throws Exception {

        // Konfigurasi HttpClient
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // Atur waktu timeout koneksi, default adalah 10 detik
                .responseTimeout(Duration.ofSeconds(10)) // Atur waktu timeout respons, default adalah 20 detik
                .maxConnections(128) // Atur ukuran kolam koneksi
                .maxIdleTimeOut(Duration.ofSeconds(50)) // Atur timeout kolam koneksi, default adalah 30 detik
                // Konfigurasi proxy
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001))
                        .setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>"))
                // Jika koneksi HTTPS, Anda perlu mengonfigurasi sertifikat, atau abaikan sertifikat (.ignoreSSL(true))
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // Konfigurasi informasi autentikasi kredensial, termasuk ak, secret, token
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // gunakan token STS
                .build());

        // Konfigurasi Client
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // ID Wilayah
                //.httpClient(httpClient) // Gunakan HttpClient yang telah dikonfigurasi, jika tidak maka gunakan HttpClient default (Apache HttpClient)
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // Konfigurasi tingkat layanan
                // Penimpaan konfigurasi tingkat klien, dapat mengatur Endpoint, parameter permintaan HTTP, dll.
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // Untuk informasi tentang endpoint, lihat https://api.aliyun.com/product/live
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // Pengaturan parameter untuk permintaan API
        DescribeLiveSnapshotConfigRequest describeLiveSnapshotConfigRequest = DescribeLiveSnapshotConfigRequest.builder()
                .domainName("<Your DomainName>")
                .appName("<Your AppName>")
                // Penimpaan konfigurasi tingkat permintaan, dapat mengatur parameter permintaan HTTP, dll.
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // Mendapatkan nilai kembali permintaan API secara asinkron
        CompletableFuture<DescribeLiveSnapshotConfigResponse> response = client.describeLiveSnapshotConfig(describeLiveSnapshotConfigRequest);
        // Mendapatkan nilai kembali permintaan API secara sinkron
        DescribeLiveSnapshotConfigResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // Pemrosesan nilai kembali secara asinkron
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // Penanganan pengecualian
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // Terakhir, tutup klien
        client.close();
    }

}
Catatan
  • Anda dapat menggunakan kode contoh ini untuk pengujian. Ganti nilai dalam tanda kurung sudut (<>) dengan nilai aktual Anda.

  • <regionId> adalah ID wilayah. Untuk informasi selengkapnya tentang cara mendapatkan ID wilayah, lihat Endpoint.

  • <ALIBABA_CLOUD_ACCESS_KEY_ID> dan <ALIBABA_CLOUD_ACCESS_KEY_SECRET> adalah ID AccessKey dan Rahasia AccessKey Anda. Jika Anda belum memiliki pasangan AccessKey, lihat bagian Prasyarat dalam topik ini.

  • DescribeLiveSnapshotConfigRequest adalah kelas permintaan untuk mengkueri konfigurasi snapshot.

  • DescribeLiveSnapshotConfigResponse adalah kelas respons untuk mengkueri konfigurasi snapshot.

  • Untuk informasi selengkapnya tentang parameter permintaan dan respons, lihat referensi API DescribeLiveSnapshotConfig.

  • Pemanggilan API dibatasi oleh jumlah permintaan per detik (QPS). Untuk informasi selengkapnya tentang batas QPS, lihat Throttling.

Pada contoh sebelumnya, DescribeLiveSnapshotConfigResponse adalah objek respons yang telah dideserialisasi. Untuk langsung mengambil hasil HttpResponse tanpa deserialisasi, ubah metode yang Anda panggil.

HttpResponse httpResponse=client.doAction(describeLiveStreamSnapshotInfoRequest);
int status=httpResponse.getStatus();

Catatan:

  • Kode status HTTP antara 200 hingga 299 menunjukkan bahwa pemanggilan API berhasil.

  • Kode status HTTP antara 300 hingga 499 menunjukkan kesalahan pada sisi klien. SDK sisi server melemparkan ClientException.

  • Kode status HTTP 500 atau lebih besar menunjukkan kesalahan pada sisi server. SDK sisi server melemparkan ServerException.

Anda dapat menggunakan metode client.getAcsResponse atau client.doAction sesuai kebutuhan.

Penting

Saat menggunakan SDK ApsaraVideo Live, ikuti konvensi penamaan berikut: kelas permintaan untuk suatu API diberi nama APIRequest, dan kelas respons diberi nama APIResponse.

Tabel berikut mencantumkan beberapa API umum.

API

Kelas permintaan

Kelas respons

Kueri konfigurasi screenshot untuk nama domain

DescribeLiveSnapshotConfigRequest

DescribeLiveSnapshotConfigResponse

Tambahkan konfigurasi perekaman

AddLiveAppRecordConfigRequest

AddLiveAppRecordConfigResponse

Kueri semua konfigurasi perekaman aplikasi untuk nama domain

DescribeLiveRecordConfigRequest

DescribeLiveRecordConfigResponse

Tambahkan konfigurasi transkoding

AddLiveStreamTranscodeRequest

AddLiveStreamTranscodeResponse

Mengkueri konfigurasi transkoding

DescribeLiveStreamTranscodeInfoRequest

DescribeLiveStreamTranscodeInfoResponse

Konfigurasi batch nama domain

BatchSetLiveDomainConfigsRequest

BatchSetLiveDomainConfigsResponse

Kueri konfigurasi nama domain streaming live

DescribeLiveDomainConfigsRequest

DescribeLiveDomainConfigsResponse

Untuk informasi selengkapnya tentang API, lihat Ikhtisar API.

Kontrol resource

Saat meninjau dokumentasi API, Anda mungkin melihat informasi otorisasi. Misalnya, referensi API AddLiveAppSnapshotConfig berisi informasi otorisasi berikut.

image

Saat memberikan izin kepada pengguna RAM, Anda mengizinkan pengguna tersebut untuk memanggil API. Dalam beberapa kasus, Anda mungkin memerlukan kontrol akses yang lebih terperinci. Misalnya, Anda ingin mengizinkan pengguna RAM A hanya mengoperasikan DomainA dan pengguna RAM B hanya mengoperasikan DomainB saat mereka memanggil API yang sama. Untuk memenuhi persyaratan ini, Anda dapat menggunakan otorisasi berbasis resource. Untuk informasi selengkapnya, lihat Buat kebijakan kustom.

Catatan

Untuk informasi selengkapnya tentang resource yang didukung setiap API untuk kontrol akses, lihat Ikhtisar otorisasi API.