uniapp live-pusher如何使用
在uniapp中使用live-pusher组件时,如何正确配置推流参数?我按照官方文档设置了url和mode,但始终无法成功推流到服务器。具体需要检查哪些设置?是否还需要额外配置权限或后台服务?调试时出现错误代码1002该如何解决?希望能得到详细的实现步骤和常见问题排查方法。
2 回复
uniapp的live-pusher组件用于直播推流。基本用法:
- 在template中添加:
<live-pusher
url="rtmp://推流地址"
mode="SD"
@statechange="onStateChange"
/>
-
需要配置manifest.json,勾选直播推流权限。
-
注意:仅App端支持,H5和小程序不支持。
在 UniApp 中,live-pusher 组件用于实现实时音视频推流(直播推流),常用于直播、视频通话等场景。以下是基本使用方法、关键属性和注意事项:
基本使用
-
在页面中添加组件:
<template> <view> <live-pusher url="rtmp://your-push-server-url" // 推流地址 mode="SD" autopush @statechange="onPushStateChange" style="width: 100%; height: 300px;" ></live-pusher> </view> </template> -
JavaScript 控制:
export default { methods: { onPushStateChange(e) { console.log('推流状态变化:', e.detail); } } }
关键属性
- url:推流服务器地址(必需,支持 RTMP 协议)。
- mode:视频模式(如
SD标清、HD高清)。 - autopush:是否自动推流(默认
false,建议设为true或通过方法控制)。 - muted:是否静音。
- enable-camera:是否开启摄像头。
- beauty:美颜等级(0-9)。
- whiteness:美白等级(0-9)。
常用方法
通过 ref 调用组件方法:
<live-pusher ref="pusher" ...></live-pusher>
// 开始推流
this.$refs.pusher.start();
// 停止推流
this.$refs.pusher.stop();
// 切换摄像头
this.$refs.pusher.switchCamera();
// 暂停/恢复推流
this.$refs.pusher.pause();
this.$refs.pusher.resume();
注意事项
- 平台支持:主要在 App 端有效(iOS/Android),H5 和小程序支持有限(需查具体平台文档)。
- 权限:确保应用有摄像头和麦克风权限。
- 推流地址:需从直播服务商(如腾讯云、阿里云)获取有效的 RTMP 地址。
- 真机测试:推流功能需在真机运行,模拟器可能无法使用。
示例代码
<template>
<view>
<live-pusher
ref="livePusher"
url="rtmp://example.com/live/stream"
mode="HD"
autopush
beauty="5"
@statechange="onStateChange"
/>
<button @click="switchCamera">切换摄像头</button>
</view>
</template>
<script>
export default {
methods: {
onStateChange(e) {
console.log('状态:', e.detail.code, e.detail.message);
},
switchCamera() {
this.$refs.livePusher.switchCamera();
}
}
}
</script>
遇到具体问题可参考 UniApp 官方文档或对应平台(如微信小程序)的 live-pusher 文档。

