Todos os produtos
Search
Central de documentação

ApsaraVideo Live:Use o SDK do servidor para Java

Última atualização: Jun 30, 2026

Instale o SDK do servidor ApsaraVideo Live para Java e chame operações de API com exemplos de código.

Pré-requisitos

Use o SDK

Instale o SDK

Adicione a seguinte dependência Maven ao arquivo pom.xml:

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

Chame uma operação de API

O exemplo a seguir consulta uma configuração de snapshot.

// This file is auto-generated, don't edit it. Thanks.
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 {
        // HttpClient Configuration
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout. Default value: 10 seconds.
                .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout. Default value: 20 seconds.
                .maxConnections(128) // Set the connection pool size.
                .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout. Default value: 30 seconds.
                // Configure the proxy.
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001))
                        .setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>"))
                // For an HTTPS connection, you must configure a certificate or ignore the certificate by using .ignoreSSL(true).
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/
        // Configure credentials.
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // Ensure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // Use an STS token.
                .build());
        // Configure the client.
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // region ID
                //.httpClient(httpClient) // Use the configured HttpClient. Otherwise, the default Apache HttpClient is used.
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // Configure the service level.
                // Override the client-level configuration to set parameters such as the endpoint and HTTP request parameters.
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // For a list of endpoints, see https://api.aliyun.com/product/live.
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();
        // Set the parameters for the API request.
        DescribeLiveSnapshotConfigRequest describeLiveSnapshotConfigRequest = DescribeLiveSnapshotConfigRequest.builder()
                .domainName("<Your DomainName>")
                .appName("<Your AppName>")
                // Override the request-level configuration to set HTTP request parameters.
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();
        // Asynchronously get the API response.
        CompletableFuture<DescribeLiveSnapshotConfigResponse> response = client.describeLiveSnapshotConfig(describeLiveSnapshotConfigRequest);
        // Synchronously get the API response.
        DescribeLiveSnapshotConfigResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // Asynchronously process the response.
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // Handle exceptions.
            System.out.println(throwable.getMessage());
            return null;
        });*/
        // Close the client.
        client.close();
    }
}
Nota
  • Substitua os espaços reservados entre sinais de menor e maior (<...>) pelos valores reais.

  • <region ID>: região onde o serviço está implantado. Valores válidos: Endpoints.

  • <ALIBABA_CLOUD_ACCESS_KEY_ID> e <ALIBABA_CLOUD_ACCESS_KEY_SECRET>: seu par de AccessKey. Pré-requisitos.

  • DescribeLiveSnapshotConfigRequest: classe de requisição para consultar uma configuração de snapshot.

  • DescribeLiveSnapshotConfigResponse: classe de resposta para consultar uma configuração de snapshot.

  • Parâmetros de requisição e resposta: DescribeLiveSnapshotConfig.

  • As chamadas de API estão sujeitas a limites de QPS. Controle de fluxo.

O exemplo anterior desserializa a resposta em um objeto DescribeLiveSnapshotConfigResponse. Para obter o objeto HttpResponse bruto, chame doAction.

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

Notas de uso:

  • 2xx: chamada bem-sucedida.

  • 3xx ou 4xx: o SDK lança uma ClientException.

  • 5xx: o SDK lança uma ServerException.

Escolha client.getAcsResponse ou client.doAction conforme sua necessidade.

Importante

Convenção de nomenclatura: [APIName]Request é a classe de requisição, e [APIName]Response é a classe de resposta.

Operações de API comuns:

API

Classe de requisição

Classe de resposta

DescribeLiveSnapshotConfig

DescribeLiveSnapshotConfigRequest

DescribeLiveSnapshotConfigResponse

AddLiveAppRecordConfig

AddLiveAppRecordConfigRequest

AddLiveAppRecordConfigResponse

DescribeLiveRecordConfig

DescribeLiveRecordConfigRequest

DescribeLiveRecordConfigResponse

AddLiveStreamTranscode

AddLiveStreamTranscodeRequest

AddLiveStreamTranscodeResponse

DescribeLiveStreamTranscodeInfo

DescribeLiveStreamTranscodeInfoRequest

DescribeLiveStreamTranscodeInfoResponse

BatchSetLiveDomainConfigs

BatchSetLiveDomainConfigsRequest

BatchSetLiveDomainConfigsResponse

DescribeLiveDomainConfigs

DescribeLiveDomainConfigsRequest

DescribeLiveDomainConfigsResponse

Para obter informações sobre todas as operações de API disponíveis, consulte a visão geral da API.

Controle de acesso

Cada operação de API inclui informações de autorização. Por exemplo, a operação AddLiveAppSnapshotConfig tem os seguintes detalhes:

Action: live:AddLiveAppSnapshotConfig. Nível de acesso: create. Tipo de recurso: Domain. Formato ARN: acs:cdn:*:{#accountId}:domain/{#DomainName}. Sem chaves de condição ou operações associadas.

Para um controle de acesso mais granular, como restringir um usuário RAM a um domínio específico, crie uma política personalizada.

Nota

Detalhes de controle de acesso para cada operação: Autorização RAM.