更新记录

1.0.0(2025-10-08) 下载此版本

✨ 新特性


平台兼容性

uni-app(4.0)

Vue2 Vue2插件版本 Vue3 Chrome Chrome插件版本 Safari Safari插件版本 app-vue app-vue插件版本 app-nvue app-nvue插件版本 Android Android插件版本 iOS iOS插件版本 鸿蒙
1.0.0 - 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 -
微信小程序 微信小程序插件版本 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
1.0.0 - - - - - - - - - -

uni-app x(4.01)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

MC直播播放器 - 全平台直播组件

📖 简介

mc-live-player 是一个功能强大的 uniapp 直播播放器组件,支持多种直播协议和全平台运行。

✨ 特性

  • 🎯 多协议支持:HLS (.m3u8)、FLV (.flv)、RTMP、MP4 等
  • 📱 全平台兼容:H5、微信小程序、支付宝小程序、App 等
  • 🎨 自定义控制栏:播放/暂停、全屏、音量、清晰度切换
  • 🔄 智能播放策略:自动保持播放状态,智能切换流
  • 🚀 性能优化:HLS 缓冲优化、FLV 错误恢复、自动重试
  • 💡 易于使用:简单的 API,丰富的事件回调

🎬 支持的流格式

格式 H5 小程序 App 说明
HLS (.m3u8) 使用 hls.js
FLV (.flv) 使用 flv.js
RTMP 小程序和 App 原生支持
MP4/WebM 原生支持

📦 安装

方式 1:插件市场导入

  1. 访问 DCloud 插件市场
  2. 搜索 "mc-live-player"
  3. 点击 "使用 HBuilderX 导入插件"

方式 2:手动导入

uni_modules/mc-live-player 目录复制到项目的 uni_modules 目录下。

🚀 快速开始

基本使用

<template>
  <view>
    <mc-live-player
      src="https://example.com/live.m3u8"
      height="500rpx"
      :autoplay="true"
      :show-custom-controls="true"
    />
  </view>
</template>

<script>
export default {
  // 无需手动引入,uni_modules 会自动注册
}
</script>

多清晰度支持

<template>
  <view>
    <mc-live-player
      :src="qualityList"
      height="500rpx"
      :autoplay="true"
      :show-custom-controls="true"
    />
  </view>
</template>

<script>
export default {
  data() {
    return {
      qualityList: [
        { name: '超清', url: 'https://example.com/hd.m3u8' },
        { name: '高清', url: 'https://example.com/sd.m3u8' },
        { name: '流畅', url: 'https://example.com/ld.m3u8' }
      ]
    }
  }
}
</script>

动态切换流

<template>
  <view>
    <mc-live-player
      :src="currentSrc"
      height="500rpx"
      :autoplay="false"
      @play="handlePlay"
      @error="handleError"
    />

    <button @click="switchStream">切换流</button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      currentSrc: 'https://example.com/stream1.m3u8'
    }
  },
  methods: {
    switchStream() {
      // 直接修改 src,播放器会自动重新加载
      // 如果正在播放,会自动播放新流
      this.currentSrc = 'https://example.com/stream2.m3u8'
    },
    handlePlay() {
      console.log('开始播放')
    },
    handleError(e) {
      console.error('播放错误', e)
    }
  }
}
</script>

📋 API 文档

Props 属性

属性 类型 默认值 说明
src String/Array - 直播流地址,支持字符串或数组(多清晰度)
height String '400rpx' 播放器高度
autoplay Boolean false 是否自动播放
muted Boolean false 是否静音
show-custom-controls Boolean true 是否显示自定义控制栏(H5)
object-fit String 'contain' 视频填充模式:contain/cover/fill
background-mute Boolean false 后台播放时是否静音
min-cache Number 1 最小缓冲时长(秒)
max-cache Number 3 最大缓冲时长(秒)

Events 事件

事件名 说明 回调参数
play 开始播放 -
pause 暂停播放 -
error 播放错误 { message: String }
timeupdate 播放进度更新 event
loadedmetadata 元数据加载完成 event
statechange 播放状态变化(小程序) event
fullscreen-change 全屏状态变化 isFullscreen: Boolean
quality-change 清晰度切换 { name: String, url: String }
netstatus 网络状态(小程序) event

Methods 方法

通过 ref 调用组件方法:

<mc-live-player ref="player" :src="src" />

<script>
export default {
  methods: {
    play() {
      this.$refs.player.togglePlay() // 播放/暂停
    },
    enterFullscreen() {
      this.$refs.player.enterFullscreen() // 进入全屏
    },
    exitFullscreen() {
      this.$refs.player.exitFullscreen() // 退出全屏
    },
    retry() {
      this.$refs.player.retry() // 重试
    }
  }
}
</script>

🎯 智能播放策略

组件支持智能播放策略,当切换流(修改 src)时:

  • autoplay = true:总是自动播放新流
  • autoplay = false
    • 如果当前正在播放 → 自动播放新流(保持播放状态)
    • 如果当前未播放 → 不自动播放(需要手动点击)

这样可以提供更好的用户体验,避免意外播放。

⚙️ 配置说明

组件内置了优化的播放器配置,如需自定义,可以修改 config.js

// uni_modules/mc-live-player/config.js
export default {
  // CDN 地址
  flvJsUrl: 'https://cdn.jsdelivr.net/npm/flv.js@latest/dist/flv.min.js',
  hlsJsUrl: 'https://cdn.jsdelivr.net/npm/hls.js@latest/dist/hls.min.js',

  // 播放器配置
  player: {
    flv: {
      // FLV 配置
    },
    hls: {
      // HLS 配置
    }
  }
}

🔧 常见问题

1. H5 端无法播放

原因:浏览器自动播放限制

解决方案

  • 设置 autoplay="false",让用户手动点击播放
  • 或设置 muted="true",静音后可以自动播放

2. FLV 流无法播放

原因:可能是 CORS 跨域问题或流不存在

解决方案

  • 检查流 URL 是否正确
  • 确认服务器已配置 CORS
  • 查看浏览器控制台的错误信息

3. 小程序端无法播放

原因:域名未配置白名单

解决方案

  • 在小程序后台配置直播流域名白名单
  • 路径:开发 → 开发设置 → 服务器域名

4. 切换流后不播放

原因:autoplay 设置问题

解决方案

  • 如果希望切换后自动播放,设置 autoplay="true"
  • 或者在切换前确保播放器处于播放状态

📚 更多文档

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可

MIT License

💬 联系方式

如有问题或建议,欢迎通过以下方式联系:


如果这个组件对你有帮助,请给个⭐️支持一下!

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。