如何将 VAST 广告响应传递给 androidx.media3 exo 播放器中的 ImaAdsLoader

问题描述 投票:0回答:1

有没有办法直接将大量广告响应传递给 androidx media3 exo 播放器,而不是传递 adTag url

下面是传递 adTag url 的示例

 private AdsLoader getClientSideAdsLoader(MediaItem.AdsConfiguration adsConfiguration) {
        // The ads loader is reused for multiple playbacks, so that ad playback can resume.
        if (clientSideAdsLoader == null) {
            clientSideAdsLoader = new ImaAdsLoader.Builder(/* context= */ this)

                    .build();
        }
        clientSideAdsLoader.setPlayer(player);
        return clientSideAdsLoader;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {

 MediaSource.Factory mediaSourceFactory =
                new DefaultMediaSourceFactory(this)
                        .setLocalAdInsertionComponents(this::getClientSideAdsLoader, /* adViewProvider= */ playerView);

        player = new ExoPlayer.Builder(this)
                .setMediaSourceFactory(mediaSourceFactory)
                .build();

        playerView.setPlayer(player);


        MediaItem mediaItem =
                new MediaItem.Builder()
                        .setUri("<DASH URI>")
                        .setAdsConfiguration(
                new MediaItem.AdsConfiguration.Builder(Uri.parse("vast ad url")).build())
                        .build();


        // Set the media item to be played.
        player.setMediaItem(mediaItem);
        // Prepare the player.
        player.prepare();
        // Start the playback.
        player.play();

}


我浏览了 androidx.media3 exo 播放器的文档,但找不到任何方法。对于exo播放器2.11,我们可以通过如下

ImaAdsLoader.Builder builder = new ImaAdsLoader.Builder(mContext);
ImaSdkSettings imaSdkSettings = ImaSdkFactory.getInstance().createImaSdkSettings();
builder = builder.setImaSdkSettings(imaSdkSettings);
ImaAdsLoader imaAdsLoader = builder.buildForAdsResponse(adResource);

是否可以通过 androidx media3 exo 播放器的相似性

android androidx exoplayer exoplayer-media-item
1个回答
0
投票
String vmapXMLString = "<vmap:VMAP ........";


MediaItem mediaItem =
                new MediaItem.Builder()
                        .setUri(<mpd_url>)
                        .setAdsConfiguration(
                                new MediaItem.AdsConfiguration.Builder(Util.getDataUriForString("text/xml",vmapXMLString)).build())
                        .build();
© www.soinside.com 2019 - 2024. All rights reserved.