HarmonyOS 鸿蒙Next怎么获取 AudioRenderer 的播报完成状态和播报进度呢?

发布于 1周前 作者 ionicwang 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next怎么获取 AudioRenderer 的播报完成状态和播报进度呢?

现在实现了播报,但是如何获取 AudioRenderer 的播报完成状态和播报进度呢?怎么播报状态没有播报完成状态呢?可以怎样获取到吗?

4 回复
目前 AudioRenderer 是没有播放完成状态和播放进度,你的场景是开发播放器,还是简单播放音频内容

更多关于HarmonyOS 鸿蒙Next怎么获取 AudioRenderer 的播报完成状态和播报进度呢?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


只是播报pcm格式的音频,但需要获取播放完成状态和播放进度,在播报完成和不同的进度处理事件

播放到某个进度需要收到一个回调,可以试试OH_AudioRenderer_SetMarkPosition ts层: 参考https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-audio-V5 markReach、periodReach

在HarmonyOS鸿蒙Next系统中,获取AudioRenderer的播报完成状态和播报进度,可以通过监听相关的回调事件或使用状态查询接口实现。

  1. 播报完成状态

    • AudioRenderer通常会提供类似onCompletedonPlaybackComplete的回调方法。当音频播放完毕时,系统会触发该回调。
    • 你需要在创建或配置AudioRenderer时,注册这个回调方法。
  2. 播报进度

    • AudioRenderer可能包含getCurrentPosition或类似的方法,用于获取当前的播放进度(通常以毫秒为单位)。
    • 你可以定期调用这个方法,比如使用定时器或另一个线程,来获取并更新播放进度。
    • 此外,有些AudioRenderer实现可能支持通过注册进度更新监听器来自动接收进度更新。

示例代码片段(伪代码):

// 假设AudioRenderer有一个名为onCompleted的回调方法
audioRenderer.setOnCompletedListener(new OnCompletedListener() {
    @Override
    public void onCompleted(MediaPlayer mp) {
        // 播报完成
    }
});

// 获取播报进度
long currentPosition = audioRenderer.getCurrentPosition();

请注意,具体的方法和类名可能会根据HarmonyOS的版本和API文档有所不同。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部