AVVolumePanel提供创建音量面板AVVolumePanel的功能,提供展示和调节系统音量的统一面板。
AudioManager.setVolume接口已废弃,替代接口仅面向系统应用开放。
应用无法直接调节系统音量,可以通过系统音量面板AVVolumePanel组件,让用户通过界面操作来调节音量。
注意事项:
使用示例代码如下:
import { audio, AVVolumePanel } from '@kit.AudioKit';
let audioManager = audio.getAudioManager();
let audioVolumeManager = audioManager.getVolumeManager();
let streamUsage = audio.StreamUsage.STREAM_USAGE_MUSIC;
@Entry
@Component
export struct AVVolumePanelDemo {
@State volume: number = audioVolumeManager.getVolumeByStream(streamUsage); // 获取当前音量值
volumeMin: number = audioVolumeManager.getMinVolumeByStream(streamUsage); // 获取最小音量值
volumeMax: number = audioVolumeManager.getMaxVolumeByStream(streamUsage); // 获取最大音量值
@State positionX: number = 1100;
aboutToAppear(): void {
// 监听音量变化
audioVolumeManager.on('streamVolumeChange', streamUsage, (streamVolumeEvent: audio.StreamVolumeEvent) => {
this.volume = streamVolumeEvent.volume;
});
}
onDidBuild() {
// 进入页面渲染延迟1秒设置默认音量值
setTimeout(() => {
this.volume = 6;
}, 1000);
}
build() {
Column({ space: 20 }) {
Row() {
Text('显示音量调节面板面板:');
Toggle({ type: ToggleType.Switch, isOn: true })
.onChange((isOn: boolean) => {
this.positionX = isOn ? 1100 : -1; // 坐标值,正值显示在屏幕内,负值显示在屏幕外
});
};
Row({ space: 20 }) {
Button('-')
.onClick(() => {
if (this.volume > this.volumeMin) {
this.volume--;
}
});
Button('+')
.onClick(() => {
if (this.volume < this.volumeMax) {
this.volume++;
}
});
}.width('100%');
Text(`当前音量值:${this.volume}`);
AVVolumePanel({
volumeLevel: this.volume,
volumeParameter: {
position: {
x: this.positionX,
y: 200
}
}
})
.height(1);
}
.padding(20)
.alignItems(HorizontalAlign.Start)
.justifyContent(FlexAlign.Start)
.width('100%')
.height('100%');
}
}