You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ExoPlayer中设置音量?原SimpleExoPlayer的setVolume已弃用

为ExoPlayer设置自定义音量

基础方案:直接调用setVolume()

现在通过ExoPlayer.Builder创建的ExoPlayer实例,实现了Player接口,该接口提供了setVolume(float volume)方法,参数范围是0.0f(完全静音)到1.0f(对应系统最大音量比例)。针对你的双实例场景,只需给目标实例单独调用这个方法即可:

// 给第一个ExoPlayer实例设置30%的相对音量
player1.setVolume(0.3f)
// 第二个实例保持默认最大音量
player2.setVolume(1.0f)

进阶方案:通过DefaultAudioSink自定义音频配置

如果需要更精细的控制(比如声道平衡、关联特定音频用途),可以在初始化播放器时配置自定义AudioSink:

  1. 构建带音量配置的DefaultAudioSink:
val customAudioSink = DefaultAudioSink.Builder()
    .setAudioAttributes(
        AudioAttributes.Builder()
            .setUsage(C.USAGE_MEDIA)
            .setContentType(C.CONTENT_TYPE_MUSIC)
            .build()
    )
    .setVolume(0.4f) // 设置初始化音量
    .build()
  1. 将该AudioSink传入目标ExoPlayer的构建器:
val player1 = ExoPlayer.Builder(context)
    .setAudioSink(customAudioSink)
    .build()

这种方式适合在播放器初始化阶段就固定音量规则的场景,不同实例可以配置不同的AudioSink实现独立音量控制。

关键说明

  • setVolume()设置的是相对系统音量的比例,最终播放音量为系统当前音量 × 设置的比例值。
  • 如果需要保存用户的音量偏好,可以将数值存储到SharedPreferences,在启动播放器时读取并设置。

内容的提问来源于stack exchange,提问作者Mohit Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:20:19