HarmonyOS 鸿蒙Next 使用avplayer播放录音,如何实现:闹钟响起时暂停播放,闹钟结束后继续播放

HarmonyOS 鸿蒙Next 使用avplayer播放录音,如何实现:闹钟响起时暂停播放,闹钟结束后继续播放 【标题】使用avplayer播放录音,如何实现:闹钟响起时暂停播放,闹钟结束后继续播放

【设备信息】

【API版本】Api14

【DevEco Studio版本】 5.0.5.315

【问题描述】 使用avplayer播放录音,如何实现:闹钟响起时暂停播放,闹钟结束后继续播放

【问题相关代码】

2 回复

兄弟,你可以使用avplayer的监听方法on('audioInterrupt')来监听音频焦点变化事件:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V14/js-apis-media-V14#onaudiointerrupt9

参考代码如下:

avPlayer.on('audioInterrupt', (info: audio.InterruptEvent) => {
  console.info('audioInterrupt called,and InterruptEvent info is:' + info)
  if (info.eventType===1) {
    avPlayer.pause()
    console.log(`---avPlayer.pause()---`)
  } else if (info.eventType===2){
    avPlayer.play()
    console.log(`---avPlayer.play()---`)
}

更具体详细的场景你可以看下音频焦点事件的相关文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V14/audio-playback-concurrency-V14

更多关于HarmonyOS 鸿蒙Next 使用avplayer播放录音,如何实现:闹钟响起时暂停播放,闹钟结束后继续播放的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,使用avplayer播放录音时,可以通过监听系统事件来实现闹钟响起时暂停播放,闹钟结束后继续播放的功能。具体步骤如下:

  1. 注册系统事件监听器:使用SystemEventManager注册闹钟事件的监听器,监听ALARM_STARTALARM_END事件。

  2. 处理闹钟开始事件:当接收到ALARM_START事件时,调用avplayer.pause()方法暂停录音播放。

  3. 处理闹钟结束事件:当接收到ALARM_END事件时,调用avplayer.play()方法继续播放录音。

以下是一个简单的代码示例:

import systemEvent from '@ohos.systemEvent';
import media from '@ohos.multimedia.media';

// 创建avplayer实例
let avPlayer = media.createAVPlayer();

// 注册闹钟开始事件监听器
systemEvent.on('ALARM_START', () => {
    avPlayer.pause();
});

// 注册闹钟结束事件监听器
systemEvent.on('ALARM_END', () => {
    avPlayer.play();
});

通过上述方法,可以在鸿蒙Next系统中实现闹钟响起时暂停播放录音,闹钟结束后继续播放的功能。

回到顶部