更新记录
0.0.1(2026-03-09)
- 实现了跨平台流式音频播放功能
- 支持 Android、iOS、HarmonyOS、Web、微信小程序 平台
- 支持 uni-app 和 uni-appx 框架
- 提供了基础的事件监听功能
- 完善了使用文档和 API 说明
平台兼容性
uni-app(4.85)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | 6.0 | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.85)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| √ | √ | 6.0 | √ | √ | √ |
lime-stream-audio
基于 UTS 实现的跨平台流式音频播放器,兼容 iOS、Android、HarmonyOS、Web 和小程序平台,支持实时流式音频播放。
安装
- 在 HBuilderX 中导入插件
- 在需要使用的页面或组件中导入
getStreamAudioPlayer方法 - APP 需要自定义基座,uni-app(鸿蒙、Web、微信小程序需要源码),uni-appx 没有限制
基础使用
以下示例展示如何通过网络请求实现流式音频播放:
// Vue 3 Composition API
import { getStreamAudioPlayer } from '@/uni_modules/lime-stream-audio'
const audioPlayer = getStreamAudioPlayer()
audioPlayer.setSampleRate(16000)
// 使用 uni.request 实现流式音频请求
const fetchAudioStream = () => {
let task = uni.request({
url: 'https://example.com/audio-stream',
method: 'GET',
timeout: 600000,
enableChunked: true,
success: (response) => {
console.log('音频流请求结束')
audioPlayer.finishWrite()
},
fail: (err) => {
console.error('获取音频流失败:', err)
}
})
// 处理接收到的音频数据
task.onChunkReceived((response) => {
try {
// 假设服务器返回的是 base64 编码的音频数据
const chunkText = new TextDecoder().decode(response.data)
if (chunkText && chunkText.length > 0) {
audioPlayer.writeBase64(chunkText)
}
} catch (error) {
console.error('处理音频数据失败:', error)
}
})
}
const onPlayVoice = () => {
console.log('开始播放流式音频');
// 开始获取音频流
fetchAudioStream()
// 开始播放
audioPlayer.play()
}
const onStopVoice = () => {
console.log('停止播放');
audioPlayer.stop()
}
高级功能
事件监听
以下示例展示如何使用音频播放器的事件监听功能:
// 创建音频播放器实例
const audioPlayer = getStreamAudioPlayer()
// 设置采样率
audioPlayer.setSampleRate(16000)
// 监听播放开始事件
audioPlayer.onStarted(() => {
console.log('音频播放开始');
});
// 监听播放暂停事件
audioPlayer.onPaused(() => {
console.log('音频播放暂停');
});
// 监听播放恢复事件
audioPlayer.onResumed(() => {
console.log('音频播放恢复');
});
// 监听播放停止事件
audioPlayer.onStopped(() => {
console.log('音频播放停止');
});
// 监听播放完成事件
audioPlayer.onCompleted(() => {
console.log('音频播放完成');
});
// 监听播放错误事件
audioPlayer.onError((error) => {
console.error('音频播放错误:', error);
});
// 监听播放进度事件
audioPlayer.onProgress((current, total) => {
console.log('播放进度:', current, '/', total);
});
// 开始播放
audioPlayer.play();
API
方法
getStreamAudioPlayer()
获取流式音频播放器实例。
audioPlayer.setSampleRate(rate)
设置音频采样率。
参数说明:
rateNumber 采样率,单位:Hz
audioPlayer.writeBase64(base64)
写入 base64 格式的音频数据。
参数说明:
base64String base64 编码的音频数据
audioPlayer.writeData(data)
写入 ArrayBuffer 格式的音频数据。
参数说明:
dataArrayBuffer 音频数据
audioPlayer.finishWrite()
标记音频数据写入完成。
audioPlayer.play()
开始播放音频。
audioPlayer.pause()
暂停播放音频。
audioPlayer.resume()
恢复播放音频。
audioPlayer.stop()
停止播放音频。
audioPlayer.setVolume(volume)
设置音量。
参数说明:
volumeNumber 音量,范围:0.0 - 1.0
audioPlayer.dispose()
释放播放器资源。
事件监听
audioPlayer.onStarted(callback)
监听播放开始事件。
audioPlayer.onPaused(callback)
监听播放暂停事件。
audioPlayer.onResumed(callback)
监听播放恢复事件。
audioPlayer.onStopped(callback)
监听播放停止事件。
audioPlayer.onCompleted(callback)
监听播放完成事件。
audioPlayer.onError(callback)
监听播放错误事件。
回调参数:
errorObject 错误信息errorCodeNumber 错误码errorMessageString 错误信息
audioPlayer.onProgress(callback)
监听播放进度事件。
回调参数:
currentNumber 当前播放时间,单位:mstotalNumber 总播放时间,单位:ms
移除事件监听
audioPlayer.offStarted(callback)audioPlayer.offPaused(callback)audioPlayer.offResumed(callback)audioPlayer.offStopped(callback)audioPlayer.offCompleted(callback)audioPlayer.offError(callback)audioPlayer.offProgress(callback)
平台兼容性
| 平台 | 支持情况 | 注意事项 |
|---|---|---|
| iOS | ✅ | 需在 Info.plist 中添加音频权限 |
| Android | ✅ | 需在 AndroidManifest.xml 中添加音频权限 |
| HarmonyOS | ✅ | 需添加音频权限 |
| Web | ✅ | 需在 HTTPS 环境下使用 |
| 小程序 | ✅ | 需在小程序后台配置音频权限 |
打赏
如果你觉得本插件解决了你的问题,赠人玫瑰,手留余香。


收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 69393
赞赏 546
下载 11428236
赞赏 1872
赞赏
京公网安备:11010802035340号