更新记录

1.0.1(2022-01-20)

直播推流rtmp发布


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


# 直播推流live push


概述

1:GPUImage基础美颜 磨皮 提亮 色调调节 2.GPUImage滤镜 用户可自定义 3.动态水印 4.自定义控件 5.推流实现自研,没有集成个大平台sdk


温馨提示

 let ox = this.$refs.live;

  监听事件
  var globalEvent = weex.requireModule('globalEvent');
  globalEvent.addEventListener("pushCallback", function (e) {
           var code= e.code;
           // -1 连接错误
          // 0 未连接
          // 1 连接中
          // 2 已连接
          // 3 已停止
          // 8 初始完成
          // 其他为自定义控件事件 以控件 code分辩

    });

模块接口

unzipFilter

解压初始化滤镜


   //解压滤镜 zipPath 可以为http网络资源 用户可自己定义 格式参考 static/filter下zip内格式
    const ox = uni.requireNativePlugin('Jiang-OxLivePusher');
      ox.unzipFilter({
        filters: [{
          name: '初心',
          zipPath: '/static/filter/persion/001.zip'
        }, {
          name: '白皙',
          zipPath: '/static/filter/persion/002.zip'
        }, {
          name: '白雪',
          zipPath: '/static/filter/persion/003.zip'
        }, {
          name: '初恋',
          zipPath: '/static/filter/persion/004.zip'
        }, {
          name: '动人',
          zipPath: '/static/filter/persion/005.zip'
        }, {
          name: '非凡',
          zipPath: '/static/filter/persion/006.zip'
        }, {
          name: '告白',
          zipPath: '/static/filter/persion/007.zip'
        }, {
          name: '活泼',
          zipPath: '/static/filter/persion/008.zip'
        }, {
          name: '慕斯',
          zipPath: '/static/filter/persion/009.zip'
        }, {
          name: '奶茶',
          zipPath: '/static/filter/persion/010.zip'
        }]
      });

open

打开界面

   var ox = api.require('oxLivePusher');
   ox.open({
                url: "rtmp://",//直播地址
                components:[backBtn],// 控件  自定义控件 可选
                warterMark:{
                    pic:'/static/logo.png',
                    x: 20,
                    y: 40,
                    w: 30,
                    h: 30
                },//水印 字段为空则不显示水印
                backgroundHolder: '/static/background.png', //视频背景图片
                data:{}//用户自定义数据 可以是vid uid 等 随点击事件返回
            });

startPreview

开始预览

   let ox = this.$refs.live;
    ox.startPreview();

startPush

开始推送

   let ox = this.$refs.live;
    ox.startPush();

stopPush

停止推送

   let ox = this.$refs.live;
    ox.stopPush();

isPush

是否推送

   let ox = this.$refs.live;
    ox.isPush(function(ret) {
            if(ret.code==0){
                var isPush = ret.isPush;
            }

        });

showPreview

显示预览

   let ox = this.$refs.live;
    ox.showPreview();

hidePreview

隐藏预览

   let ox = this.$refs.live;
    ox.hidePreview();

switchCamera

切换前后摄像头

   let ox = this.$refs.live;
    ox.switchCamera();

toggleFlashLight

闪光灯开启关闭

    let ox = this.$refs.live;
    ox.toggleFlashLight();

showBeautifyPanel

显示美颜面板

   let ox = this.$refs.live;
    ox.showBeautifyPanel();

showFilterPanel

显示滤镜面板

   let ox = this.$refs.live;
    ox.showFilterPanel();

updateWarterMark

更新水印

   let ox = this.$refs.live;
    ox.updateWarterMark({
                    pic:'widget://res/icon.png',
                    x: 20,
                    y: 40,
                    w: 30,
                    h: 30
                });

updateComponent

更新自定义组件

   let ox = this.$refs.live;
    ox.updateComponent({
             type: 'component',
    x: w - 50,
    y: 460,
    w: 34,
    h: 34,
    pics: [{
      path: '/static/icon_share.png',
      x: 6,
      y: 6,
      w: 22,
      h: 22,
      scaleType: 0, //0图片自适应 1 图片撑满 xywh
      radius: 0, //圆角
      code: 211
    }],
    radius: 18,
    backgroundColor: '#000000',
    alpha: 0.5,
    border: 0,
    borderColor: '#01000000',
    text: '',
    textSize: 14,
    textColor: '#C0FF3E',
    alignment: 0,
    code: 21,
    hidden: false
          });

screenshot

截屏 返回base64

   let ox = this.$refs.live;
    ox.screenshot(function(ret) {
            if(ret.code==0){
                var base64 = ret.base64;
            }

        });

setMirror

设置镜像开启

   let ox = this.$refs.live;
    ox.setMirror({isMirror:true});

sendLiveMembers

在线人员

   let ox = this.$refs.live;
    let members = [{
              uid: '9',
              avatar: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-dc-site/c40319b0-6080-11eb-918d-3d24828c498c.png',
              name: '潮汕小丸子'
            },
            {
              uid: '10',
              avatar: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-dc-site/c40319b0-6080-11eb-918d-3d24828c498c.png',
              name: '任佳宁'
            },
            {
              uid: '11',
              avatar: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-dc-site/c40319b0-6080-11eb-918d-3d24828c498c.png',
              name: '任佳宁'
            },
            {
              uid: '12',
              avatar: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-dc-site/c40319b0-6080-11eb-918d-3d24828c498c.png',
              name: '任佳宁'
            },
            {
              uid: '13',
              avatar: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-dc-site/c40319b0-6080-11eb-918d-3d24828c498c.png',
              name: '任佳宁'
            },
            {
              uid: '14',
              avatar: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-dc-site/c40319b0-6080-11eb-918d-3d24828c498c.png',
              name: '神彩花边'
            }
          ];
          ox.sendLiveMembers(members)

showGiftPanel

显示礼物面板

   let ox = this.$refs.live;
   ox.showGiftPanel()

sendLiveGift

发送礼物svga格式

   let ox = this.$refs.live;
   ox.sendLiveGift(gift)

sendLiveDanmaku

拟弹窗消息

   let danmaku = {
            uid: '',
            avatar: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-dc-site/c40319b0-6080-11eb-918d-3d24828c498c.png',
            name: '潮汕小丸子',
            content: '弹幕'
          };
          ox.sendLiveDanmaku(danmaku);

sendLiveMessage

发送滚动消息

   let message = {
            type: 3, //1 系统消息 2 自己的消息 3 其他人消息
            uid: '',
            userName: '潮汕小丸子',
            userMsg: '潮汕小丸子',
            icon: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-dc-site/c40319b0-6080-11eb-918d-3d24828c498c.png',
            textColor: '#FFFFFF'
          };
          ox.sendLiveMessage(message);

隐私、权限声明

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

android 摄相头权限CAMERA 麦克风权限RECORD_AUDIO 存储权限WRITE_EXTERNAL_STORAGE READ_EXTERNAL_STORAGE ios 摄像头权限NSCameraUsageDescription 麦克风权限 NSMicrophoneUsageDescription

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

插件不采集任何数据

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

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问