uni-app

最近更新时间:2024-09-06 14:53:21

我的收藏
【官方】腾讯云实时音视频 SDK 仅提供基本的音视频通话能力,悬浮窗的实现需要参考 uni-app 相关的官文文档自己实现。
TRTC SDK是音视频基础能力,无 UI 和逻辑。适用于比较复杂的场景,或者定制化比较强的场景。用现有的 TUICallKit 无法满足的需求,就可以使用 TRTC SDK自己搭建。
TUICallKit 插件包含 UI 和逻辑,专用于 1v1、多人音视频通话场景,接入简单。
建议请参见 TRTCSimpleDemoUniApp

实例里面 app.vue 中的 aegis-weex-sdk 有什么用?

Demo 里的aegis-weex-sdk主要是用来对 Demo 做性能监控统计。

创建实例 this.trtcCloud = TrtcCloud.createInstance(); 和 this.trtcCloud = new TrtcCloud(); 有什么区别?

创建 trtcCloud 单例,只能通过 TrtcCloud.createInstance() 实例化一个 TrtcCloud 对象。

startRemoteView 在什么时候调用?

建议在 onUserVideoAvailable 事件回调中调用 startRemoteView

本地预览如何自定义样式?

建议通过 view 包裹trtc-local-view、trtc-remote-view。然后设置 view 的样式即可。

startLocalPreview 不传 viewId 可以吗?

startLocalPreview可以不传 viewId。但是页面需要有 trtc-local-view 组件,并且它的 viewId 绑定的是本地用户 ID。

startLocalPreview 报 -2 错误?

错误原因:没有实例化本地预览的 view。
解决方案:
首先必须是 .nvue 文件,详见
页面必须使用trtc-local-view并且绑定了 viewId。

【官方】腾讯云实时音视频 SDKlivepusher 推流模块同时使用,打包冲突?

结论:
目前两者无法同时使用。
原因:
uni-app 官网文档介绍 第三方 SDK 使用 LiteAVSDK(weex_livepusher-release.aar)做直播推流,和 【官方】腾讯云实时音视频 SDK 使用的 LiteAVSDK_TRTC 类冲突。和 uni-app 技术沟通后,对方反馈不清楚 SDK 属于哪个版本类型,因此 uni-app 他们无法对 livepusher 进行升级。
解决方案:




Api-Example 打开音频没作用?

检查打基座是否勾选android.permission.RECORD_AUDIO,勾选后重新打基座。



Api-Example 音频路由 setAudioRoute 没作用?

检查打基座是否勾选android.permission.MODIFY_AUDIO_SETTINGS,勾选后重新打基座。



【官方】腾讯云实时音视频 SDK支持将插件 android 里的 .aar 放到 android studio 中离线打包吗?

不支持。目前仅支持 HBuilder 中采用 “本地插件” 或 “云端插件” 进行打包。




如何实现大小窗切换实现方案?

实现思路:用户在代码中写两个 <trtc-remote-view /> 标签,分别对应两个不同的 viewId(eg. 大窗时的 viewId='remoteBigID', 小窗时的 viewId='remoteSmallID'),在不同时刻渲染对应的 view。
快速体验:请下载 大小窗切换实现方案,参考 reame.md 跑通。
实现逻辑
<view class="trtc-box">
<view v-if="isLocalSmall" class="big-view">
<trtc-remote-view class="big-view" :userId="remoteUserId" viewId="remoteBigID"></trtc-remote-view>
</view>

<view :class="[isLocalSmall ? 'small-view' : 'big-view']" >
<trtc-local-view :class="[isLocalSmall ? 'small-view' : 'big-view']" :viewId="userId"></trtc-local-view>
</view>

<view v-if="!isLocalSmall" class="small-view">
<trtc-remote-view class="small-view" :userId="remoteUserId" viewId="remoteSmallID"></trtc-remote-view>
</view>
</view>

<button @click="toggleWindowSize"> toggleWindowSize </button>
<button @click="() => startRemoteView('remoteBigID')">Start Remote View</button>
toggleWindowSize() {
this.isLocalSmall = !this.isLocalSmall;
if (this.isLocalSmall) {
this.startRemoteView('remoteBigID');
} else {
this.startRemoteView('remoteSmallID');
}
},
.trtc-box {
width: 300px;
height: 500px;
border: 1px solid black;
position: relative;
}

.big-view {
width: 250px;
height: 200px;
position: absolute;
background-color: red;
}

.small-view {
width: 100px;
height: 100px;
position: absolute;
right: 0;
top: 0;
background-color: green;
}