# 视频音量与系统音量不同步

#### 问题现象

在视频页面调节音量大小，和系统的音量不同步。

#### 背景知识

通过手势调节音量是视频开发中的常见功能。在HarmonyOS中，系统提供了Video组件以及AVPlayer接口供开发者进行视频开发，同时提供了如下调节音量的方法：

*   通过添加音量面板组件来调节系统音量。
*   系统音量接口AudioVolumeManager，可以和音量面板组合使用调节系统音量。
*   通过AVPlayer接口中的setVolume()方法实现管理音频流音量。

#### 问题定位

打开视频页，分别通过手势和系统按键调节音量，二者的调节结果不同，初步判断是视频音量和系统音量的控制之间没有添加连接。检查代码，发现应用视频加载使用的是AVPlayer接口，通过setVolume()方法实现的音量调节功能：

```
this.avPlayer.setVolume(this.playerModel.volume);
```

全局搜索AudioVolumeManager发现并没有监听系统音量变化的代码，手势调节只是控制视频音量大小，并没有通知系统音量变化，从而导致视频与系统的音量不同步。

#### 分析结论

应用只通过setVolume()方法进行了视频音量的调节，没有通知系统音量同步变化。

#### 修改建议

*   使用系统按键调节音量时，通过on('streamVolumeChange')监听系统的音量变化，将变化值通过setVolume()方法同步给视频。
*   使用PanGesture手势调节视频音量时，通过调用音量面板组件，将调节的结果同步给系统音量。

#### 常见FAQ

Q：是否有控制系统音量进度条的位置或者显示隐藏的API？

A：目前没有控制系统音量进度条位置或显隐的API，可以给页面增加音量面板组件并使用Position属性将面板移出屏幕外，以实现系统音量进度条和音量面板的隐藏效果。