uni

您所在的位置:网站首页 uni-app框架流程图 uni

uni

2022-10-02 00:14| 来源: 网络整理| 查看: 265

前提条件

客户端集成前,请确保已经通过控制台创建应用并获取客户端集成需要的信息(应用ID,APP Key,低代码集成服务地址,低代码集成服务密钥)。创建指引请参见创建应用。

接入说明

uni-app是一个可以用不同方式编译到多端的大型框架。针对不同的编译目标端,接入的低代码音视频工程SDK以及接入方式有所不同。

编译目标端为HTML5(以下简称H5),或使用Vue开发混合(Android与iOS)App,请接入Web端SDK。操作指引请参见Web端集成。

编译目标端为微信小程序,请接入微信小程序SDK。操作指引请参见微信小程序端集成。

目标是使用nvue开发拥有直播推流能力的原生Android或iOS App,可以接入uni-app nvue SDK。具体接入方式请参见集成nvue SDK。

集成nvue SDK环境要求

HBuilderX 3.0.0 或以上版本。

准备iOS和Android设备,版本要求如下:

iOS 10.0或以上版本的iPhone或者iPad。

Android 5.0及以上版本的Android设备。

设备可以通过蜂窝移动数据或Wi-Fi连接到互联网。

拥有一个使用nvue开发的uni-app项目。

下载原生插件包

下载nvue原生插件。

将原生插件导入到项目中

解压下载的alicloud-IMPInteractionRoomUniPlugin.zip文件。

将解压缩后的alicloud-IMPInteractionRoomUniPlugin文件夹放置在项目工程根目录下的nativeplugins文件夹中。如果没有该目录,请手动创建。

在项目的配置文件manifest.json中,选择App原生插件配置,再点击选择本地插件,勾选刚才下载的alicloud-IMPInteractionRoomUniPlugin,点击确认即可。导入uni-app原生插件

制作自定义调试基座说明

uni-app官方有两种调试基座:标准运行基座和自定义调试基座。只有自定义调试基座才可以打包并调试第三方插件包。有关自定义调试基座,请参见什么是自定义调试基座及使用说明。

在菜单中选择运行 > 运行到手机或模拟器 > 制作自定义调试基座制作自定义调试基座-进入

在弹出的App打包窗口中,按照官方说明和您的需求,选择相应的配置,之后点击打包按钮进行云端打包。制作自定义调试基座-打包打包结束后,控制台中会给出提示:制作自定义调试基座-成功

在菜单中选择运行 > 运行到手机或模拟器 > 运行基座选择 > 自定义调试基座,之后手机连接到设备,点击运行即可。

运行基座

注意

如果需要调试推流能力,需要先手动给予自定义基座打包的App相机、麦克风权限,在安卓端一般需要长按App图标,选择权限即可。

将JS封装层SDK添加到项目

下载nvue JS封装层SDK。

将下载的JS文件保存在您项目的任意位置。

在您的项目中使用import语法导入文件即可。

import RoomEngine, {ShowMode, Resolution, EventNameEnum} from 'path/to/RoomPaasSdk.uni.min.js'

Api使用请参见uni-app nvue封装层接口文档。

集成JS封装层SDK

建立长连接。

// 获取roomEngine实例 const roomEngine = RoomEngine.getInstance(); // 构造配置项 const config = { userId, deviceId, appId, appKey, authTokenCallback: () => { return new Promise((resolve, reject) => { uni.request({ url: `your-domain.com/api/login/getToken`, success(res) { // 根据您的服务端返回值决定resove的值。返回值示例: // { // "accessToken": "oauth_cloud_key:xxxxxx", // "accessTokenExpiredTime": 86400000, // "refreshToken": "oauth_cloud_key:xxxxxxx" // } resolve(res); }, fail(err) { reject(err); } }) }) } }; // 初始化 roomEngine.init(config); // 登录 roomEngine.login().then(() => { console.log('登录成功'); }).catch(err => { console.error('登录失败'); }); // 退出登录 roomEngine.logout();注意

config中的deviceId是用来标记设备唯一性的任意字符串,需要按设备唯一且不变,需要由开发人员自行生成。生成方式不限,建议方式举例:按时间戳和userId之类生成随机码并在本地存储中长期保存,或者根据设备信息生成MD5码等。

进入房间。

// 获取roomChannel实例 const roomChannel = roomEngine.getRoomChannel(roomId); // 进入房间 roomChannel.enterRoom(nick).then(() => { console.log('进入房间成功'); // 这里就可以获取各个原子能力实例了 this.chatService = roomChannel.getChatService(); // 进入房间后可以使用房间API return roomChannel.getRoomDetail(); }).then(roomDetail => { console.log(roomDetail); }).catch(err => { console.log('进入房间失败'); });

使用原子能力API。

// 在template里使用ali-live-player和ali-live-pusher的component // 获取chatService实例,并使用方法 this.chatService = this.roomChannel.getChatService(); this.chatService.getChatDetail().then(res => { console.log(res); }); // 获取playerService实例,需要传入ali-live-player的ref this.player = this.roomChannel.getPlayerService(this.$refs.player); this.player.start(); // 获取pusherService实例,需要传入ali-live-pusher的ref this.pusher = this.roomChannel.getPlayerService(this.$refs.pusher); this.pusher.startLive();

监听消息。

// 获取消息名称列表 import { EventNameEnum } from './RoomPaasSdk.uni.min.js'; // 获取globalEvent官方插件 const globalEvent = uni.requireNativePlugin('globalEvent'); // 绑定事件 globalEvent.addEventListener(EventNameEnum.CommentReceived, receiveCommentHandler) // 移除事件 globalEvent.removeEventListener(EventNameEnum.CommentReceived)查看示例代码

关于nvue接入的Demo源码,请参见nvue标准集成互动直播Demo源码。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3