播放音量管理

2024-02-16 13:54 更新

播放音量的管理主要包括對(duì)系統(tǒng)音量的管理和對(duì)音頻流音量的管理。系統(tǒng)音量與音頻流音量分別是指HarmonyOS系統(tǒng)的總音量和指定音頻流的音量,其中音頻流音量的大小受制于系統(tǒng)音量,管理兩者的接口不同。

詳細(xì)的API說明請(qǐng)參考audio API參考。

系統(tǒng)音量

管理系統(tǒng)音量的接口是AudioVolumeManager,在使用之前,需要使用getVolumeManager()獲取AudioVolumeManager實(shí)例。目前該接口只能獲取音量信息及監(jiān)聽音量變化,不能主動(dòng)調(diào)節(jié)系統(tǒng)音量。

  1. import audio from '@ohos.multimedia.audio';
  2. let audioManager = audio.getAudioManager();
  3. let audioVolumeManager = audioManager.getVolumeManager();

監(jiān)聽系統(tǒng)音量變化

通過設(shè)置監(jiān)聽事件,可以監(jiān)聽系統(tǒng)音量的變化:

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

音頻流音量

管理音頻流音量的接口是AVPlayer或AudioRenderer的setVolume()方法,使用AVPlayer設(shè)置音頻流音量的示例代碼如下:

  1. let volume = 1.0 // 指定的音量大小,取值范圍為[0.00-1.00],1表示最大音量
  2. avPlayer.setVolume(volume)

使用AudioRenderer設(shè)置音頻流音量的示例代碼如下:

  1. audioRenderer.setVolume(0.5).then(data=>{ // 音量范圍為[0.0-1.0]
  2. console.info('Invoke setVolume succeeded.');
  3. }).catch((err) => {
  4. console.error(`Invoke setVolume failed, code is ${err.code}, message is ${err.message}`);
  5. });
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)