uniapp app 如何调用 createaudioplayer 实现音频播放
在uniapp开发APP时,如何正确调用createAudioPlayer接口实现音频播放功能?尝试按照官方文档创建实例后,调用play()方法没有反应,也没有报错信息。需要确认以下细节:1) 是否需要特殊权限配置;2) 音频路径是否支持网络URL或必须本地路径;3) 是否有完整的代码示例展示创建、播放、暂停的全流程?目前测试发现onPlay事件未触发,求排查思路。
2 回复
在uniapp中,使用uni.createInnerAudioContext()创建音频播放器:
const audio = uni.createInnerAudioContext();
audio.src = '音频地址';
audio.play();
记得处理播放错误和自动播放限制。
在 UniApp 中,可以使用 uni.createInnerAudioContext() 创建音频播放器(注意不是 createaudioplayer,这是原生开发中的 API)。以下是实现步骤和示例代码:
步骤:
- 创建音频上下文对象:使用
uni.createInnerAudioContext()初始化音频播放器。 - 设置音频源:通过
src属性指定音频文件路径(支持本地路径或网络 URL)。 - 控制播放:调用
play()、pause()、stop()等方法控制播放。 - 监听事件:通过事件监听处理播放状态(如播放完成、错误等)。
示例代码:
// 创建音频上下文
const audioPlayer = uni.createInnerAudioContext();
// 设置音频源(示例为网络URL,本地路径需放在static目录下)
audioPlayer.src = 'https://example.com/audio.mp3';
// 播放音频
audioPlayer.play();
// 暂停播放
// audioPlayer.pause();
// 停止播放
// audioPlayer.stop();
// 监听播放完成事件
audioPlayer.onEnded(() => {
console.log('音频播放完成');
});
// 监听播放错误事件
audioPlayer.onError((err) => {
console.log('播放错误:', err);
});
// 销毁音频实例(在页面卸载时调用)
// audioPlayer.destroy();
注意事项:
- 音频格式:确保音频格式兼容(如 MP3、AAC)。
- 作用域管理:在页面或组件销毁时调用
destroy()释放资源。 - 网络权限:使用网络音频时,需在
manifest.json中配置网络请求权限。
完整示例(Vue 页面):
<template>
<view>
<button @click="playAudio">播放</button>
<button @click="pauseAudio">暂停</button>
</view>
</template>
<script>
export default {
data() {
return {
audioPlayer: null
};
},
mounted() {
this.audioPlayer = uni.createInnerAudioContext();
this.audioPlayer.src = 'https://example.com/audio.mp3';
},
methods: {
playAudio() {
this.audioPlayer.play();
},
pauseAudio() {
this.audioPlayer.pause();
}
},
beforeDestroy() {
this.audioPlayer.destroy();
}
};
</script>
通过以上代码即可在 UniApp 中实现音频播放功能。

