# wrplayer
**Repository Path**: warom-org/wrplayer
## Basic Information
- **Project Name**: wrplayer
- **Description**: h5播放器
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-07-21
- **Last Updated**: 2026-02-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# WRPlayer
WRPlayer 是一个统一的 Web 视频播放器 SDK,提供一致的 API 来播放多种流媒体协议(WebRTC、HLS、DASH、MP4 等),并可在原生 HTML 与 Next.js/React 环境中复用同一套核心代码。
## 特性
- **多协议支持**: WebRTC、HLS、DASH、MP4 等
- **自动类型检测**: 可从 URL 自动识别播放类型
- **统一 API**: `play/pause/stop/on/off` 等一致方法与事件
- **UMD + ESM 构建**: 一次构建,既可 `
```
**音频控制策略**:为避免常见的 SDP 协商问题,默认禁用音频。若需要音频,可手动启用:
```html
```
**常见的 WebRTC 音频问题**:
如果您遇到类似的错误:
- `Failed to set up audio demuxing for mid='1'`
- `Session error description: Failed to set up audio demuxing`
这通常是由于客户端与流媒体服务器的音频编解码器不匹配导致的。解决方案:
1. **推荐**:使用 `recvAudio: false` 禁用音频接收
2. **强制方案**:如果仍有问题,使用 `webrtcConfig` 强制禁用:
```javascript
const player = new WRPlayer({
element: document.getElementById('player'),
url: 'http://your-host/index/api/webrtc?...',
recvAudio: false,
webrtcConfig: {
audioEnable: false, // 强制禁用音频 transceiver
videoEnable: true, // 确保视频启用
recvOnly: true // 确保仅接收模式
}
});
```
3. 检查流媒体服务器是否正确配置音频编码
4. 如果必须使用音频,播放器会自动进行回退重试
### B. Next.js / React
示例项目位于 `demo/next/`:
```bash
cd demo/next
npm install
npm run dev # 开发模式
# 或
npm run build && npm run start # 生产模式
```
在页面中使用适配器组件:
```jsx
'use client';
import WRPlayerComponent from '../../../adapters/next';
export default function Page() {
return (
console.log('播放器准备就绪')}
onError={(err) => console.error('播放错误:', err)}
debug={true}
/>
);
}
```
> 说明:适配器已封装客户端初始化流程,SSR 环境下不会触发浏览器 API。
## API(核心类 `WRPlayer`)
### 构造函数
```js
new WRPlayer(options)
```
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| options.element | HTMLVideoElement | 是 | 用于播放的 `