# 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 | 是 | 用于播放的 `