Android 如何在ExoPlayer中显示广告标记?

Android 如何在ExoPlayer中显示广告标记?,android,exoplayer,exoplayer2.x,Android,Exoplayer,Exoplayer2.x,我使用的是ExoPlayer2.7.1。我必须每隔一定的时间播放广告。这些间隔是以毫秒为单位的长数组。如何在ExoPlayer控制器中显示广告标记?要集成您自己的广告解决方案,我通常建议查看ExoPlayer库的和,它提供了将您的广告很好地集成到内容媒体源中的方法。通过这种方式,播放机可以感知广告播放,并确保广告不会被跳过、显示标记等 AdsMediaSource用于实现ExoPlayer的功能,但您可以在解决方案中利用这些功能 回答您关于广告标记的具体问题: PlayerControlView

我使用的是
ExoPlayer
2.7.1。我必须每隔一定的时间播放广告。这些间隔是以毫秒为单位的长数组。如何在ExoPlayer控制器中显示广告标记?

要集成您自己的广告解决方案,我通常建议查看ExoPlayer库的和,它提供了将您的广告很好地集成到内容媒体源中的方法。通过这种方式,播放机可以感知广告播放,并确保广告不会被跳过、显示标记等

AdsMediaSource用于实现ExoPlayer的功能,但您可以在解决方案中利用这些功能

回答您关于广告标记的具体问题:

PlayerControlView
有一种方法,可用于设置广告标记位置和布尔值,以指示广告是否已显示:

playerControlView.setExtraAdGroupMarkers(
        new long[]{10 * 1000, 120 * 1000},
        new boolean[]{false, false});
但是,如果您使用的是开箱即用的PlayerView,那么访问PlaybackControlView会有点困难,它是由player视图以编程方式插入的。因此,您不能使用findById,而且恐怕PlayerView没有为控制器提供getter

因此,如果您使用PlayerView,我看到的唯一方法是提供您自己的布局文件exo_player_view.xml,在其中设置自定义控制器:

  • 在项目中创建一个文件res/layout/exo_player_view.xml,并将文件复制到其中

  • 在此布局文件中,搜索id为exo\u controller\u占位符的视图元素。将其替换为以下元素:

  • 在onCreate中查找播放器控件视图:

    playerControlView=findviewbyd(R.id.exo_控制器)

  • 每当要更新调用的标记时:

    playerControlView.setExtraAdGroupMarkers(
    新长[]{10*1000,120*1000},
    新布尔值[]{true,false})


  • 第二个参数让您如图所示标记广告。

    要集成您自己的广告解决方案,我通常建议查看ExoPlayer库的和,它提供了将您的广告很好地集成到内容媒体源中的方法。通过这种方式,播放机可以感知广告播放,并确保广告不会被跳过、显示标记等

    AdsMediaSource用于实现ExoPlayer的功能,但您可以在解决方案中利用这些功能

    回答您关于广告标记的具体问题:

    PlayerControlView
    有一种方法,可用于设置广告标记位置和布尔值,以指示广告是否已显示:

    playerControlView.setExtraAdGroupMarkers(
            new long[]{10 * 1000, 120 * 1000},
            new boolean[]{false, false});
    
    但是,如果您使用的是开箱即用的PlayerView,那么访问PlaybackControlView会有点困难,它是由player视图以编程方式插入的。因此,您不能使用findById,而且恐怕PlayerView没有为控制器提供getter

    因此,如果您使用PlayerView,我看到的唯一方法是提供您自己的布局文件exo_player_view.xml,在其中设置自定义控制器:

  • 在项目中创建一个文件res/layout/exo_player_view.xml,并将文件复制到其中

  • 在此布局文件中,搜索id为exo\u controller\u占位符的视图元素。将其替换为以下元素:

  • 在onCreate中查找播放器控件视图:

    playerControlView=findviewbyd(R.id.exo_控制器)

  • 每当要更新调用的标记时:

    playerControlView.setExtraAdGroupMarkers(
    新长[]{10*1000,120*1000},
    新布尔值[]{true,false})


  • 第二个参数让您按照所示标记广告。

    其工作正常,我怀疑如何将添加标记颜色黄色更改为任何其他颜色?其工作正常,我怀疑如何将添加标记颜色黄色更改为任何其他颜色?