HarmonyOS 鸿蒙Next avPlayer 如何调用系统音量并同步设置

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next avPlayer 如何调用系统音量并同步设置

业务需求:在视频播放界面,通过手指上下滑动,调节播放源的音量大小,并与系统音量同步。

目前通过 avPlayer.setVolume(this.volume); 可以设置的最大音量是1,但这个最大音量,只是目前的系统声音。如果系统声音很小,setVolume(1)音量也很小。

并且,没有找到相关接口,获取avPlayer或系统音量大小,无法初始化自定义的声音进度条。但是优酷、腾讯视频、爱奇艺、bilibili 都已实现此功能。

论坛里搜了下,有同样的提问,比如这个 播放视频上下滑动控制调节音量,使用avplayer的setVolume设置音量无法与音量按键保持同步。如何实现保持与音量按键同步。 但没有得到有效的解决答案。

1.目前三方应用可调节音频流音量,暂不支持调节系统音量。

2.可以使用音量面板调节系统音量。 但此方案不符合业务需求。

3 回复

实现方案是:

1、使用AVVolumePanel组件,做系统音量调整

参考demo,其中把系统音量面板放出屏幕外,不影响界面,通过调节this.volume的值来改变系统音量大小:

import { AVVolumePanel } from '@kit.AudioKit';

@Entry
@Component
struct Index {
  @State volume: number = 0;

  build() {
    Row() {
      Column() {
        AVVolumePanel({
          volumeLevel: this.volume,
          volumeParameter: {
            position: {
              x: -1,
              y: -1
            }
          }
        })

        Button('音量+1')
          .onClick(() => {
            this.volume += 1;
          })
        Button('音量-1')
          .onClick(() => {
            this.volume -= 1;
          })
      }
    }.width('50%').height('50%')
  }
}

2、可以参考codelab示例代码控制音量,参考链接: https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/tutorials_NEXT-VideoPlayer 手势控制播放页面通过绑定平移手势(PanGesture),上下滑动调节屏幕亮度,左右滑动调节视频音量 ;

在HarmonyOS(鸿蒙)系统中,使用avPlayer进行视频播放时,调用系统音量并同步设置通常涉及以下几个步骤:

  1. 获取音量管理器:首先,需要通过系统API获取音量管理器(VolumeManager)的实例。这通常通过调用系统服务接口实现。

  2. 设置音量类型:在获取到音量管理器后,需要指定要操作的音量类型,如媒体音量、铃声音量等。对于avPlayer,一般操作的是媒体音量。

  3. 调整音量:使用音量管理器提供的接口调整指定类型的音量。这可以通过设置具体的音量值或增减音量实现。

  4. 同步设置:确保avPlayer的音量设置与系统音量设置同步,通常需要在调整系统音量时,同步更新avPlayer的内部音量设置。这可能需要监听系统音量变化事件,并在事件触发时更新avPlayer的音量。

  5. 错误处理:在调用过程中,要注意捕获和处理可能出现的异常或错误,确保应用的稳定性。

示例代码(伪代码):

VolumeManager* volumeManager = getSystemService(VolumeManager::class.java);
int mediaType = VolumeManager.MEDIA_VOLUME;
volumeManager.setVolume(mediaType, desiredVolumeLevel);
// 监听系统音量变化并同步更新avPlayer音量

请注意,具体实现细节可能因HarmonyOS版本和API变化而有所不同。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部