uni-app getBackgroundAudioManager在鸿蒙系统下playbackRate倍速设置无效
uni-app getBackgroundAudioManager在鸿蒙系统下playbackRate倍速设置无效
| 项目创建方式 | 开发环境 | 版本号 |
|---|---|---|
| HBuilderX | Mac | macOS Ventura 13.0 |
| 4.84 | ||
| HarmonyOS NEXT | HarmonyOS 5.1.0 | |
| 华为 | nova 13 |
bug描述:
鸿蒙系统下 uni.getBackgroundAudioManager的playbackRate倍速设置无效,无论怎么设置都是按照1.0的倍速播放,这个能力对教培、课程、音频播放等相关的应用是比较核心的一个功能,官方能否支持下

示例代码:
<template>
<view class="listen1">
<view>
<button @click="play(1)">播放1倍速</button>
</view>
<view style="padding-top: 10px;">
<button @click="play(0.5)">播放0.5倍速</button>
</view>
<view style="padding-top: 10px;">
<button @click="play(1.25)">播放1.25倍速</button>
</view>
<view style="padding-top: 10px;">
<button @click="play(1.5)">播放1.5倍速</button>
</view>
<view style="padding-top: 10px;">
<button @click="play(2.0)">播放2.0倍速</button>
</view>
<view style="padding-top: 10px;">
<button @click="stop()">停止</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: 'Poetry',
src: 'https://hanyu-poem-voice.cdn.bcebos.com/man/728cc93938e04276909386ee5ae85d6b.mp3',
}
},
onLoad(options) {
this.initAudio()
},
onUnload() {
},
methods: {
initAudio() {
try {
this.audioManager = uni.getBackgroundAudioManager()
this.audioManager.title = this.title
this.audioManager.onWaiting(() => {
console.log('音频缓冲中')
this.loading = true
})
this.audioManager.onCanplay(() => {
console.log('音频可以播放')
this.loading = false
})
this.audioManager.onPlay(() => {
console.log('音频开始播放')
this.playing = true
this.loading = false
})
this.audioManager.onPause(() => {
console.log('音频暂停')
this.playing = false
this.loading = false
})
this.audioManager.onStop(() => {
console.log('音频停止')
})
this.audioManager.onEnded(() => {
console.log('音频播放结束')
this.loading = false
})
this.audioManager.onTimeUpdate((e) => {
})
this.audioManager.onError((e) => {
console.warn('音频播放出错:', e)
this.loading = false
})
console.log('音频管理器初始化成功')
} catch (e) {
console.warn('音频管理器初始化失败,使用模拟播放:', e)
this.loading = false
this.fallbackToSimulation()
}
},
play(rate){
console.log(rate);
this.audioManager.title = '播放'+rate
this.audioManager.playbackRate = rate
this.audioManager.src = this.src
this.audioManager.play()
},
stop(){
this.audioManager.stop()
}
}
}
</script>
<style scoped>
</style>
操作步骤:
let audio = uni.getBackgroundAudioManager
audio.playbackRate = 2.0
预期结果:
可以倍速播放
实际结果:
无效果,只能按照1倍速播放
更多关于uni-app getBackgroundAudioManager在鸿蒙系统下playbackRate倍速设置无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
hello , 请提供一下一个完整的测试项目
更多关于uni-app getBackgroundAudioManager在鸿蒙系统下playbackRate倍速设置无效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
已添加完整代码和出错截屏
回复 g***@qq.com: 你看输出提示目前鸿蒙平台还不支持倍速
这是一个已知的鸿蒙系统兼容性问题。在HarmonyOS NEXT 5.1.0系统下,getBackgroundAudioManager的playbackRate属性确实存在设置无效的情况。
从技术层面分析,这主要是由于鸿蒙系统的底层音频引擎对倍速播放的支持与Android/iOS存在差异。虽然uni-app已经封装了标准的API接口,但鸿蒙系统的音频组件可能还未完全适配倍速播放功能。
目前可行的解决方案:
- 检查系统兼容性:在设置倍速前先检测系统版本,对鸿蒙系统进行降级处理
if (uni.getSystemInfoSync().platform === 'harmony') {
console.warn('鸿蒙系统暂不支持倍速播放')
return
}
- 使用条件编译:针对鸿蒙平台使用替代方案
// #ifdef HARMONY
// 鸿蒙平台使用其他音频方案
// #endif

