Tüm Ürünler
Search
Belge Merkezi

ApsaraVideo VOD:Getting started

Son Güncelleme:Oct 21, 2026

Android için ApsaraVideo Player SDK kullanarak video oynatmaya başlayın.

Ön Koşullar

Android için ApsaraVideo Player'ın SDK entegrasyonunu tamamladınız.

Açık Kaynaklı Örnek Proje

Ayrıntılı kod örnekleri için API-Example içindeki BasicPlayback modülüne bakın. Java tabanlı bu Android örnek projesi, temel oynatıcı özelliklerini hızlıca entegre etmenize yardımcı olur.

Not

Video oynatmadan önce veya oynatma anormal olduğunda; alan adı, sertifika, URL imzalama ve CNAME gibi video oynatma URL'sine ilişkin bilgileri kontrol ederek yaygın sorunları tespit etmenize ve çözmenize yardımcı olan Sorun Giderme aracını kullanabilirsiniz.

Yordam

Adım 1: Oynatıcıyı oluşturun

AliPlayerFactory sınıfını kullanarak bir AliPlayer örneği oluşturun.

// Create a player instance.
AliPlayer mAliPlayer = AliPlayerFactory.createAliPlayer(context);
// Pass the traceId.
// Optional: Use the Tracing Analysis feature. If an exception occurs during video playback with the ApsaraVideo Player SDK, this feature performs end-to-end tracing of abnormal playback for a specific user or session. This helps you quickly diagnose issues and improve playback experience administration.
// Define the traceId value. It must be a unique identifier for your user or device, such as your business's user ID, or a device ID like an International Mobile Equipment Identity (IMEI) or identifier for advertisers (IDFA).
mAliPlayer.setTraceId("traceId");
Not

Oynatıcının oynatma kalitesi izleme, Tracing Analysis ve video oynatma istatistikleri özellikleri enstrümantasyon günlüklerinin raporlanmasına bağlıdır. Oynatma kalitesi izleme, genel oynatma kalitesine ilişkin veriler sağlar. Tracing Analysis, belirli kullanıcıları veya cihazları konumlandırır, oynatma davranışlarını analiz eder ve oynatma hataları gibi sorunların hızla belirlenmesine yardımcı olur.

Oynatıcıyı oluştururken kullanılabilen özellikler, setTraceId parametresinin yapılandırmasına bağlıdır:

  • setTraceId parametresini ayarlamazsanız (varsayılan): Enstrümantasyon günlüklerinin raporlanması etkinleştirilir. Bu sayede oynatma kalitesi izleme ve video oynatma istatistikleri özelliklerini kullanabilirsiniz. Tracing Analysis özelliği kullanılamaz.

  • setTraceId parametresini bir traceId değerine ayarlarsanız: traceId değeri kullanıcı tarafından tanımlanır ve işletmenizin kullanıcı kimliği veya Uluslararası Mobil Ekipman Kimliği (IMEI) ya da reklamverenler için tanımlayıcı (IDFA) gibi benzersiz bir cihaz veya kullanıcı tanımlayıcısı olması gerekir. traceId değerini ayarladıktan sonra enstrümantasyon günlüklerinin raporlanması etkinleştirilir. Bu sayede oynatma kalitesi izleme, Tracing Analysis ve video oynatma istatistikleri özelliklerini kullanabilirsiniz.

  • setTraceId parametresini DisableAnalytics olarak ayarlarsanız: Enstrümantasyon günlüklerinin raporlanması devre dışı bırakılır. Oynatma kalitesi izleme, Tracing Analysis ve video oynatma istatistikleri özellikleri kullanılamaz.

Adım 2: Görüntüleme görünümünü ayarlayın

Oynatıcı üç tür görünümü destekler: AliDisplayView, SurfaceView ve TextureView.

  • AliDisplayView: Standartlaştırılmış arabirimlere sahip, SDK tarafından kapsüllenmiş tek tip bir görünüm bileşenidir. Hızlı entegrasyonlar ve basit UI senaryoları için uygundur.

  • SurfaceView / TextureView: Uygulama katmanına görünüm yaşam döngüsü ve işleme mantığı üzerinde tam denetim sağlayan yerel görünümlerdir. Karmaşık görünüm hiyerarşileri veya ayrıntılı denetim gerektiren senaryolar için uygundur.

  1. Görünümü XML dosyasında bildirin.

    AliDisplayView

    <!-- Player rendering view -->
    <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

    <!-- Player rendering view -->
    <SurfaceView
        android:id="@+id/surface_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" />

    TextureView

    <!-- Player rendering view -->
    <TextureView
        android:id="@+id/texture_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" />
  2. Görüntüleme görünümünü ayarlayın.

    AliDisplayView

    Görünümü eklemek için oynatıcının setDisplayView yöntemini çağırın.

    AliDisplayView mAliDisplayView = findViewById(R.id.display_view);
    // Set the player view type using setPreferDisplayView().
    mAliDisplayView.setPreferDisplayView(AliDisplayView.DisplayViewType.SurfaceView);
    mAliPlayer.setDisplayView(mAliDisplayView);

    SurfaceView

    Görünümü eklemek için oynatıcının setSurface yöntemini çağırın.

    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

    Görünümü eklemek için oynatıcının setSurface yöntemini çağırın.

    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) {
    
        }
    });

Adım 3: Oynatma kaynağını ayarlayın

VidAuth oynatma (Önerilen)

VidAuth vidAuth = new VidAuth();
vidAuth.setVid("Your Vid");// Required. The video ID (VideoId).
vidAuth.setPlayAuth("<yourPlayAuth>");// Required. The playback credential. Call the GetVideoPlayAuth operation of ApsaraVideo VOD to generate the credential.
vidAuth.setRegion("The region ID");// For ApsaraVideo Player SDK V5.5.5.0 and later, this parameter is deprecated. You do not need to set the region because the player automatically parses it. For versions earlier than V5.5.5.0, this parameter is required. It specifies the region where ApsaraVideo VOD is activated. The default value is cn-shanghai.
// vidAuth.setAuthTimeout(3600); // The validity period of the playback URL, in seconds. This value overwrites the validity period for URL signing that is set in the ApsaraVideo VOD console. If you do not pass this parameter, the default value 3600 is used. If you set this parameter, make sure that the period is longer than the video duration to prevent the playback URL from expiring before playback is complete.
mAliPlayer.setDataSource(vidAuth);

VidSts oynatma

VidSts vidSts = new VidSts();
vidSts.setVid("Your Vid");// Required. The video ID (VideoId).
vidSts.setAccessKeyId("<yourAccessKeyId>");// Required. The AccessKey ID of the temporary AccessKey pair. Call the AssumeRole operation of Security Token Service (STS) to generate it.
vidSts.setAccessKeySecret("<yourAccessKeySecret>");// Required. The AccessKey secret of the temporary AccessKey pair. Call the AssumeRole operation of STS to generate it.
vidSts.setSecurityToken("<yourSecurityToken>");// Required. The STS token. Call the AssumeRole operation of STS to generate it.
vidSts.setRegion("The region ID");// Required. The region where ApsaraVideo VOD is activated. The default value is cn-shanghai.
mAliPlayer.setDataSource(vidSts);

UrlSource oynatma

// Create a playback source object and set the playback URL.
UrlSource urlSource = new UrlSource();
// Required. The playback URL. It can be a third-party video-on-demand (VOD) URL, a playback URL from ApsaraVideo VOD, or a local video URL.
urlSource.setUri("The playback URL");
mAliPlayer.setDataSource(urlSource);
Not

Diğer oynatma kaynağı seçenekleri hakkında daha fazla bilgi için Temel Özellikler bölümüne bakın.

Adım 4: Oynatmayı başlatın

// Prepare for playback.
mAliPlayer.prepare();
// Start playback.
mAliPlayer.start();

Adım 5: Oynatmayı sonlandırın

Oynatmayı durdurmadan önce, işleme kaynaklarını serbest bırakmak için oynatıcı görünümünün bağlantısını kaldırın. Kullandığınız oynatıcı görünüm türüne göre bağlantı kaldırma yöntemini seçin:

  • SurfaceView / TextureView: Görünümün bağlantısını kaldırmak için setSurface(null) öğesini çağırın.

  • AliDisplayView: Görünümün bağlantısını kaldırmak için setDisplayView(null) öğesini çağırın.

Tam oynatma sonlandırma kodu aşağıdaki gibidir:

// Unbind the player view.
// For SurfaceView / TextureView:
aliPlayer.setSurface(null);
// For AliDisplayView:
aliPlayer.setDisplayView(null);

// Stop playback.
mAliPlayer.stop();
// Destroy the player.
mAliPlayer.release();
// Clear the reference to avoid a memory leak.
mAliPlayer = null;

Referanslar

Oynatma denetimi, olay dinleyicileri ve diğer oynatıcı yetenekleri hakkında daha fazla bilgi için Temel Özellikler bölümüne bakın.