基于鸿蒙API10的RTSP播放器(六:系统音量调节前置知识)

概述:
播放音量的管理主要包括对系统音量的管理和对音频流音量的管理。系统音量与音频流音量分别是指HarmonyOS系统的总音量和指定音频流的音量,其中音频流音量的大小受制于系统音量,管理两者的接口不同。

  1. 系统音量:
import { audio } from '@kit.AudioKit';

// 通过AudioVolumeManager只能获取音量信息及监听音量变化,不能主动调节系统音量

let audioManager = audio.getAudioManager();
let audioVolumeManager = audioManager.getVolumeManager();

  1. 监听系统音量:
import { audio } from '@kit.AudioKit';

// 通过设置监听事件,可以监听系统音量的变化

audioVolumeManager.on('volumeChange', (volumeEvent: audio.VolumeEvent) => {
  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
  console.info(`Volume level: ${volumeEvent.volume} `);
  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
});

  1. 使用音量面板调节系统音量: 依赖AudioManager来进行音频管理

// 音量可使用audioManager进行调节
audioManager.setVolume(audio.AudioVolumeType.MEDIA, this.volume, (err: BusinessError) => {  
    if (err) {  
      console.error(`Failed to set the volume. ${err}`);  
      return;  
    }  
    console.info('Callback invoked to indicate a successful volume setting.');  
  });  
}

  1. 设置音频流音量: 管理音频流音量的接口是AVPlayer或AudioRenderer的setVolume()方法

// 方法一
let volume = 1.0 // 指定的音量大小,取值范围为[0.00-1.00],1表示最大音量
avPlayer.setVolume(volume);

// 方法二
audioRenderer.setVolume(0.5).then(() => {  // 音量范围为[0.0-1.0]
  console.info('Invoke setVolume succeeded.');
}).catch((err: BusinessError) => {  
  console.error(`Invoke setVolume failed, code is ${err.code}, message is ${err.message}`);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值