使用uni-live-pusher 和 uni-live-player 组件开发小程序直播功能

这篇具有很好参考价值的文章主要介绍了使用uni-live-pusher 和 uni-live-player 组件开发小程序直播功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Uniapp开发文档中没有直接提供小程序直播功能的API,需要自己通过调用第三方SDK或者封装相关API实现。下面介绍一些可能实用的组件和工具:

  1. uni-live-pusher 和 uni-live-player 组件:这两个组件可以实现小程序直播推流和播放器功能,可在H5、App、微信小程序等多端使用。

  2. 腾讯云直播服务接口:腾讯云提供了丰富的直播服务接口,包括推流、播放、转码等,可通过REST API方式调用。需要购买相应的直播服务后才能使用。

  3. 阿里云直播服务接口:阿里云也提供了类似的直播服务接口,可用于实现小程序直播功能。同样需要购买相应的服务后才能使用。

  4. 七牛云直播服务接口:七牛云也提供了一套完整的直播服务及相关接口,可实现直播的推流、拉流、转码、断流重连等功能。同样需要购买相应的服务后才能使用。

接下来我们就使用uni-live-pusher 和 uni-live-player 组件开发小程序直播功能的代码简单示例:

在UniApp中使用 uni-live-pusheruni-live-player 组件开发一个小程序直播,可以按照以下步骤进行:

  • 在小程序后台创建一个直播活动,并获取直播的推流地址和播放地址。

  • 在需要显示推流视频的页面中,使用 uni-live-pusher 组件,并在 onLoad 生命周期中初始化推流器,设置推流地址和其他参数,如宽度、高度、码率等。

<template>
  <view>
    <uni-live-pusher :url="pusherUrl" :width="width" :height="height" :bitrate="bitrate"
      :audio="audio" :debug="debug" ref="livePusher" />
  </view>
</template>

<script>
export default {
  data() {
    return {
      pusherUrl: '', // 推流地址
      width: 480, // 视频宽度
      height: 640, // 视频高度
      bitrate: 600, // 视频码率
      audio: true, // 是否开启音频
      debug: false // 是否开启调试
    }
  },
  onLoad() {
    uni.setKeepScreenOn({
      keepScreenOn: true
    })
    this.initLivePusher()
  },
  methods: {
    initLivePusher() {
      const livePusher = this.$refs.livePusher
      livePusher && livePusher.stop && livePusher.stop()
      livePusher && livePusher.start && livePusher.start()
    }
  }
}
</script>
  • 在需要显示播放视频的页面中,使用 uni-live-player 组件,并在 onLoad 生命周期中初始化播放器,设置播放地址和其他参数,如宽度、高度、缩放模式等。
<template>
  <view>
    <uni-live-player :url="playerUrl" :mode="mode" :orientation="orientation" :autoplay="autoplay"
      :muted="muted" :backgroundMute="backgroundMute" :minCache="minCache" :maxCache="maxCache"
      :soundMode="soundMode" :autoPauseIfNavigate="autoPauseIfNavigate" :autoPauseIfOpenNative="autoPauseIfOpenNative"
      :pictureInPictureMode="pictureInPictureMode" :disableScroll="disableScroll" :enableCamera="enableCamera"
      :renderMode="renderMode" :enableHWAcceleration="enableHWAcceleration" :autoShowLoading="autoShowLoading"
      :showMuteBtn="showMuteBtn" :showProgress="showProgress" :showCenterPlayBtn="showCenterPlayBtn"
      :enableProgressGesture="enableProgressGesture" :mute="mute" :backgroundMuteStopPlay="backgroundMuteStopPlay"
      :autoFullScreen="autoFullScreen" :pictureInPictureShowProgress="pictureInPictureShowProgress" ref="livePlayer" />
  </view>
</template>

<script>
export default {
  data() {
    return {
      playerUrl: '', // 播放地址
      mode: 'live', // 缩放模式
      orientation: 'vertical', // 横竖屏方向
      autoplay: true, // 是否自动播放
      muted: false, // 是否静音
      backgroundMute: false, // 是否开启后台静音
      minCache: 1, // 最小缓存
      maxCache: 3, // 最大缓存
      soundMode: 'speaker', // 播放声音模式
      autoPauseIfNavigate: true, // 当跳转到其他页面时,是否自动暂停
      autoPauseIfOpenNative: true, // 当打开原生组件(如拍照)时,是否自动暂停
      pictureInPictureMode: 'push', // 小窗模式
      disableScroll: false, // 是否禁止滚动
      enableCamera: false, // 是否使用前置摄像头
      renderMode: 'adaptive', // 渲染模式
      enableHWAcceleration: true, // 是否开启硬件加速
      autoShowLoading: true, // 是否自动显示加载状态
      showMuteBtn: true, // 是否显示静音按钮
      showProgress: true, // 是否显示进度条
      showCenterPlayBtn: true, // 是否显示居中播放按钮
      enableProgressGesture: true, // 是否支持手势调节播放进度
      mute: false, // 是否静音
      backgroundMuteStopPlay: false, // 当开启后台静音时,是否停止播放
      autoFullScreen: false, // 是否自动全屏
      pictureInPictureShowProgress: true // 小窗是否显示进度条
    }
  },
  onLoad() {
    this.initLivePlayer()
  },
  methods: {
    initLivePlayer() {
      const livePlayer = this.$refs.livePlayer
      livePlayer && livePlayer.stop && livePlayer.stop()
      livePlayer && livePlayer.start && livePlayer.start()
    }
  }
}
</script>
  • onUnload 生命周期中停止推流和播放。
onUnload() {
  const livePusher = this.$refs.livePusher
  livePusher && livePusher.stop && livePusher.stop()
  const livePlayer = this.$refs.livePlayer
  livePlayer && livePlayer.stop && livePlayer.stop()
}

需要注意的是,这只是一个简单的演示代码。实际开发中,需要考虑更多的情况和异常处理,并遵循相关法规和隐私政策要求,保证推流和拉流的质量及用户体验。文章来源地址https://www.toymoban.com/news/detail-663909.html

到了这里,关于使用uni-live-pusher 和 uni-live-player 组件开发小程序直播功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uni-app引入海康威视h5player实现视频监控的播放

    知识储备 uni-app web-view组件相关知识:点击学习。 海康威视相关工具下载:点击跳转下载。 web-view组件不全屏显示:uni-app web-view 如果设置不全屏 不自动铺满。 工具下载 首先下载海康威视h5player的demo 在uni-app项目中static文件夹下创建文件目录,我命名为h5player 将demo中bin文件

    2024年02月02日
    浏览(60)
  • 【Uni-app 引入海康h5player并接入ws视频流】

    内容简介 采用uni-app中的renderjs 引入海康H5 SDK 后端接入海康综合安防平台的开放API获取预览流 海康H5 SDK 下载地址 接入原因 因在移动端接入不管是hls flv rtsp rtmp流的播放稳定性和速度均很慢,特采用ws直连流来播放,效率很稳定性均显著提高。因采用前者流可以直接使用原生

    2024年02月11日
    浏览(88)
  • Uni-app组件使用

    组件是 视图层的基本组成单元 。是一个单独且 可复用的功能模块的封装 。 组件名称是由尖括号包裹的,可以看成一个语义化标签,是有开始标签和结束标签的。 如下举个简单的例子: uni-card  //这是开始标签 text 这是一个基础卡片示例,内容较少,此示例展示了一个没有任

    2024年02月09日
    浏览(54)
  • uni-app如何使用组件

    使用组件是uni-app的常见操作之一。以下是使用组件的步骤: 在uni-app项目中创建组件。 可以通过在components文件夹中创建一个.vue文件来创建组件。 也可以通过在HBuilderX中使用模板或向导来创建组件。 在需要使用组件的页面或组件中引入组件。 可以使用import导入组件,例如:

    2024年02月13日
    浏览(46)
  • 测试C#调用Windows Media Player组件

      新建基于.net framework的Winform项目,可以通过添加引用的方式选择COM组件中的Windows Media Player组件,如下图所示:   也可以在VS2022的工具箱空白处点右键,选择“选择项…”菜单。   在弹出的选择工具箱项窗口中,切换到COM组件页签,然后选择Windows Media Player组件,如

    2024年02月08日
    浏览(44)
  • uni-app之使用内置组件Canvas

    UniApp 是一个基于 Vue.js 的跨平台开发框架,它允许开发者使用一套代码同时构建多个平台的应用程序。UniApp 提供了丰富的内置组件,其中包括 Canvas 组件,用于在应用中绘制图形和实现图形动画效果。本文将详细介绍 UniApp 内置组件 Canvas 的使用方法,以及提供示例代码和说明

    2024年02月12日
    浏览(43)
  • uniapp 小程序端使用uni-popup组件时,页面用了scroll-view滚动组件,uni-popup组件也使用了scroll-view滚动出现组件滚动导致页面也滚动的解决方案

    在 uni-popup上给一个禁止滚动 @touchmove.stop.prevent=\\\"\\\" 和一个样式height: 100vh;    

    2024年02月10日
    浏览(61)
  • uni-app-使用tkiTree组件实现树形结构选择

    前言 在实际开发中我们经常遇见树结构-比如楼层区域-组织架构-部门岗位-系统类型等情况 往往需要把这个树结构当成条件来查询数据,在PC端可以使用Tree,table,Treeselect等组件展示 在uni-app的内置组件中似乎没有提供这样组件来展示,但是是有第三方包tkiTree组件来解决这个

    2024年02月14日
    浏览(72)
  • uniapp 使用组件 uni-list 实现聊天列表功能

    如何使用 uniapp 的组件实现聊天列表的功能呢,翻阅了半天文档,终于找到一个实用的方法,下面是具体的步骤  1、首先需要下载对应的插件 去uniapp的官方文档进行下载(uni-ui - DCloud 插件市场),这里直接下载插件并导入到HBuilderx 中就可以了。  2、接下来就可以直接进行使

    2024年02月09日
    浏览(46)
  • uni-app nvue页面中使用video视频播放组件

    我遇到的问题是,在nvue页面引用video组件,然后啥也没显示的,显示了无法控制播放,折腾了好久,在这里记录下来!希望可以帮助到需要的人 我的代码是这样的(src换成官方的举例)  问题1:视频页面一片空白,后来去查官方文档是这样说的 我以为按照官方提示勾选 ma

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包