收藏
回答

live-player组件播放报2103和-2301问题,改如何解决?

在使用live-player组件,进行连接摄像头播放真机调试时,状态码总报2103和-2301,如下图所示:

加载live-player的index.wxml页面代码如下:

点击播放按钮,进行获取视频流播放地址并进行播放,播放代码如下:

获取到的流地址如下:https://218.245.5.239:6014/openUrl/vsigLaUTH0cf581c17f1cee4baca8fa6/live.flv

此地址在vlc播放器中能正常播放。但是在小程序中就报2103,如上所述,想问,这是什么原因,怎么解决。是否需要在小程序域名中添加流地址的配置;目前服务器域名配置如下:

是否还需要在小程序的项目app.json文件中配置相应插件,

"plugins": {

    "live-player-plugin": {

      "version": "1.3.0", 

      "provider": "wx2b03c6e691cd7370" 

    }

  },

但是进行上述配置后项目编译中报错。

针对此问题该如何解决,请给予技术支持,谢谢

回答关注问题邀请回答
收藏

2 个回答

  • 梅梅
    梅梅
    2025-12-16

    控制台完整截图:

    2.播放器初始化参数:

    <live-player id="playersrc="{{currentUrl}}" mode="RTCautoplay bindstatechange="statechangebinderror="error"  style="width: 300px; height: 225px;object-fit="fillCrop"/>

    3.微信版本以及基础库版本见1截图右边部分

    4.页面代码index.wxml以及index.js代码如下:

    index.wxml如下:

    <view class="page-body">
      <view class="page-section tc">
        <live-player id="player" src="{{currentUrl}}" mode="RTC" autoplay bindstatechange="statechange" binderror="error"  style="width: 300px; height: 225px;" object-fit="fillCrop"/>
    
    
        <view class="btn-area">
          <button bindtap="bindPlay" class="page-body-button" type="primary">播放</button>
          <button bindtap="bindPause" class="page-body-button" type="primary">暂停</button>
          <button bindtap="bindStop" class="page-body-button" type="primary">停止</button>
          <button bindtap="bindResume" class="page-body-button" type="primary">恢复</button>
          <button bindtap="bindMute" class="page-body-button" type="primary">静音</button>
        </view>
      </view>
    </view>
    
    

    index.js代码如下:

    import {getPreviewURLs
    } from '../../utils/api';
    const app = getApp();
    Page({
      data: {
        currentUrl'',
      },
      onReady(res) {
        this.ctx = wx.createLivePlayerContext('player')
      },
      statechange(e) {
        console.log('live-player code:', e.detail.code)
      },
      error(e) {
        console.error('live-player error:', e.detail.errMsg)
      },
      async bindPlay() {
        // 获取播放地址
        const result = await getPreviewURLs({
          userId: app.globalData.user.id,
          token: app.globalData.user.token,
          indexCode"5ed1330de1404f3786ff1e5ba0ba9742"
        });
    console.log(result.data.url)
        // 更新状态
        this.setData({
          currentUrl: result.data.url,
        });
        this.ctx.play({
          successres => {
            console.log('play success')
          },
          failres => {
            console.log(res);
            console.log('play fail')
          }
        })
      },
      bindPause() {
        this.ctx.pause({
          successres => {
            console.log('pause success')
          },
          failres => {
            console.log('pause fail')
          }
        })
      },
      bindStop() {
        this.ctx.stop({
          successres => {
            console.log('stop success')
          },
          failres => {
            console.log('stop fail')
          }
        })
      },
      bindResume() {
        this.ctx.resume({
          successres => {
            console.log('resume success')
          },
          failres => {
            console.log('resume fail')
          }
        })
      },
      bindMute() {
        this.ctx.mute({
          successres => {
            console.log('mute success')
          },
          failres => {
            console.log('mute fail')
          }
        })
      }
    })
    
    注,能否人工沟通,目前不知道问题出现在哪里,服务端支持http-flv协议,视频服务器证书使用的是数字证书:
    
    

    
    
    




    2025-12-16
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    2025-12-12
    有用
    回复
登录 后发表内容