api 定位 微信小程序 精度_微信小程序直播

点击fc2fe0c2be277289a9323a98ff5dce09.png关注 “长安大司马”   给公众号标星置顶

更多精彩 第一时间直达 不迷路

c0a0dc109ed62e7b0d2ee433a8fb963d.png

母亲节快乐

b3935fe86538ef694658d9e93ab4bb51.png

4412a6f77dab53f290fdd81858dcb5e0.png

   感谢您抽出

704933be02a793d2ffe449dac031afc9.gif

.

76e4208688e76c5d45e25b5d0e1a4c85.gif

.

b7542d481bed1fdda10a0194c600fa4b.gif

阅读本文

a1d2c54f4ccaea5136a539350de0ab98.png

1、前言

7f977039b9f6c6d36cf79db9e9aef4db.png

一说看点直播,大家应该都知道,隶属腾讯。但是在微信小程序里面直播目前应该是不常见,今天要聊的就是它。

2、功能介绍

小程序直播组件是微信给开发者提供的实时视频直播工具,可以帮助开发者快速通过小程序向用户提供优质的直播内容,在小程序内流畅完成购买交易闭环,提升转化率;小程序直播组件包括观众端、主播端及后台管理端,其中观众端提供拉流、实时互动、订阅提醒、商品购买等能力,主播端提供开播、推流、音视频效果优化等能力,后台管理端则负责直播房间、商品货架以及营销活动配置等。(直接搬的官方文档上的介绍哈)

3、运营工作

登录小程序后台,找到功能-直播,录入直播间和绑定该直播间的商品信息,录完商品会有一个审核的时间,耐心等待即可。商品地址填写小程序页面,记得带上id,如pages/productDetail/productDetail.html?id=142

4cf0909a8a571989281d60a4caaf4144.png

a1d2c54f4ccaea5136a539350de0ab98.png

4、功能开发

小程序端:小程序端接入简单,支持在主包或分包内引入【直播组件】 live-player-plugin 代码包(注:直播组件不计入代码包体积),项目根目录的 app.json 引用,示例代码如下:

主包引入
"plugins": {        "live-player-plugin": {            "version": "1.0.9", // 注意填写该直播组件最新版本号,微信开发者工具调试时可获取最新版本号(复制时请去掉注释)            "provider": "wx2b03c6e691cd7370" // 必须填该直播组件appid,该示例值即为直播组件appid(复制时请去掉注释)        }    }

分包引入

"subpackages": [        {            "plugins": {                "live-player-plugin": {                    "version": "1.0.9", // 注意该直播组件最新版本号,微信开发者工具调试时可获取最新版本号(复制时请去掉注释)                    "provider": "wx2b03c6e691cd7370" // 必须填该直播组件appid,该示例值即为直播组件appid(复制时请去掉注释)                }            }        }    ]
使用 navigator 组件跳转进入直播间
index.js
 let roomId = [直播房间id] // 填写具体的房间号,可通过下面【获取直播房间列表】 API 获取    let customParams = encodeURIComponent(JSON.stringify({ path: 'pages/index/index', pid: 1 })) // 开发者在直播间页面路径上携带自定义参数(如示例中的path和pid参数),后续可以在分享卡片链接和跳转至商详页时获取,详见【获取自定义参数】、【直播间到商详页面携带参数】章节(上限600个字符,超过部分会被截断)    this.setData({        roomId,        customParams    })

index.wxml

"plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id={{roomId}}&custom_params={{customParams}}">    // 其中wx2b03c6e691cd7370是直播组件appid不能修改
使用 navigateTo 方法跳转进入直播间
index.js
let roomId = [直播房间id] // 填写具体的房间号,可通过下面【获取直播房间列表】 API 获取    let customParams = encodeURIComponent(JSON.stringify({ path: 'pages/index/index', pid: 1 })) // 开发者在直播间页面路径上携带自定义参数(如示例中的path和pid参数),后续可以在分享卡片链接和跳转至商详页时获取,详见【获取自定义参数】、【直播间到商详页面携带参数】章节(上限600个字符,超过部分会被截断)    wx.navigateTo({        url: `plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id=${roomId}&custom_params=${customParams}`    })    // 其中wx2b03c6e691cd7370是直播组件appid不能修改通过该链接可跳转到直播组件页面(当前页面入口仅开放‘live-player-plugin’)。

2085b858a21f760728fdad7329958912.png

订阅组件

{        "usingComponents": {            "subscribe": "plugin-private://wx2b03c6e691cd7370/components/subscribe/subscribe"        }    }

然后便可在 home.wxml 里使用订阅组件,其中直播房间 id 可通过;房间 id 可通过下面【获取直播房间列表】 API 获取

<subscribe room-id="[直播房间id]">subscribe>

获取直播状态

let livePlayer = requirePlugin('live-player-plugin')        // 首次获取立马返回直播状态,往后间隔1分钟或更慢的频率去轮询获取直播状态    const roomId = xxx // 房间 id    livePlayer.getLiveStatus({ room_id: roomId })        .then(res => {        // 101: 直播中, 102: 未开始, 103: 已结束, 104: 禁播, 105: 暂停中, 106: 异常,107:已过期             const liveStatus = res.liveStatus            console.log('get live status', liveStatus)        })        .catch(err => {            console.log('get live status', err)        })

获取用户openid参数接口

let livePlayer = requirePlugin('live-player-plugin')        App({        onShow(options) {            livePlayer.getOpenid({ room_id: [直播房间id] }) // 该接口传入参数为房间号                .then(res => {                    console.log('get openid', res.openid) // 用户openid                }).catch(err => {                    console.log('get openid', err)                })        }    })

获取分享卡片链接参数

let livePlayer = requirePlugin('live-player-plugin')        App({        onShow(options) {            // 分享卡片入口场景才调用getShareParams接口获取以下参数            if (options.scene == 1007 || options.scene == 1008 || options.scene == 1044) {                livePlayer.getShareParams()                    .then(res => {                        console.log('get room id', res.room_id) // 房间号                        console.log('get openid', res.openid) // 用户openid                        console.log('get share openid', res.share_openid) // 分享者openid,分享卡片进入场景才有                        console.log('get custom params', res.custom_params) // 开发者在跳转进入直播间页面时,页面路径上携带的自定义参数,这里传回给开发者                    }).catch(err => {                        console.log('get share params', err)                    })            }        }    })

服务端:为了能把直播数据嵌入到商户系统,可以通过接口拉取直播间数据和直播回放视频数据。

/*** 获取微信直播数据* @param accessToken* @param start 起始拉取房间,start=0表示从第1个房间开始拉取* @param limit 每次拉取的个数上限,不要设置过大,建议100以内* @return*/public static JSONObject getLiveInfo(String accessToken,Integer start,Integer limit) {Map<String,Object> map = new HashMap<>();// 起始拉取房间,start=0表示从第1个房间开始拉取map.put("start",start);// 每次拉取的个数上限,不要设置过大,建议100以内map.put("limit",limit);String requestParam = JSON.toJSONString(map);logger.info("requestParam:{}",requestParam);JSONObject jsonObject = CommonUtil.httpsRequestJson(String.format("http://api.weixin.qq.com/wxa/business/getliveinfo?access_token=%s",accessToken),"POST", requestParam);logger.info("jsonObject:{}",jsonObject);return jsonObject;}/*** 获取微信直播回放数据* @param roomId 直播间id* @param start 起始拉取视频,start=0表示从第1个视频片段开始拉取* @param limit 每次拉取的个数上限,不要设置过大,建议100以内* @return*/public static JSONObject getLiveReplay(String accessToken,Long roomId,Integer start,Integer limit) {Map<String,Object> map = new HashMap<>();// 获取回放map.put("action","get_replay");// 直播间idmap.put("room_id",roomId);// 起始拉取视频,start=0表示从第1个视频片段开始拉取map.put("start",start);// 每次拉取的个数上限,不要设置过大,建议100以内map.put("limit",limit);String requestParam = JSON.toJSONString(map);logger.info("requestParam:{}",requestParam);JSONObject jsonObject = CommonUtil.httpsRequestJson(String.format("http://api.weixin.qq.com/wxa/business/getliveinfo?access_token=%s",accessToken),        "POST", requestParam);logger.info("jsonObject:{}",jsonObject);return jsonObject;}

更新回来的数据

7f977039b9f6c6d36cf79db9e9aef4db.png

上一篇:支付宝-电脑网站支付

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值