微信小程序短剧开发技术坑走指南模仿抖音快手小视频
app开发
APP开发
浏览:1238 次

1.视频组件
微信公文地址:
Uniapp官方文档地址:
2.如何用Swiper和视频实现抖音快手效果
官方提示不应超过3个标签(同一界面)。官方提示不应超过3个标签(同一界面)
链接地址:
解决方案1:在切换器中切换图像和视频标签
解决方案2:切换器中只有三个固定视频标签,该算法用于更新和切换数据源
3.视频内容兼容性
如果视频内容未加密,则首选mp4格式的文件。
m3u8在许多Android机型上报告了错误,导致播放异常。
错误1
errMsg“:”HLS错误,类型:mediaError,详细信息:bufferStalledError,
错误2
{“errMsg”:“HLS错误,类型:mediaError,详细信息:fragParsingError、响应:\“none\”},
错误3
{“errMsg”:“MEDIA_ERR_DECODE(-4003,-1)”}}
4.一些手机可能存在卡顿、固定图片和绿屏等问题
解决方案:
1: 用mp4文件替换m3u8
2: 在视频组件上添加属性自定义缓存=“{{true}}”
小贴士:大多数华为手机都是异常的,小米的数量很少。
5.如何放置和捕获视频内容
如何防止小程序中的视频数据被他人转包。
结论:苹果目前没有一个好的解决方案。Android可以使用m3u8远程加密进行解密并在本地播放。
我们从微信官方文件中得知
图像.png
然而,在实际使用中,我们会发现微信IOS端的视频不支持读取本地临时文件,Android可以。
基于以上,我们可以通过前端解密算法将从后端返回的加密m3u8文件缓存到本地,然后进行播放。(感兴趣的消息或私人消息)
6.如何防止界面被捕获
解决方案
1: 微信提供的网关服务用于捕获数据包,而不会看到网络请求的数据;(已付)
2: 前端和后端可以加密和解密数据(免费)

7.小程序界面访问速度慢
1: 小程序端是否已启用域名验证
2: 小程序管理后台配置
开发管理->开发设置->IP白名单+服务器域名
3: 然后配合后台运维,看看目标的服务器域名是否已经支付CDN加速
图像.png
8.无法访问小程序交换机域名
1: 小程序端是否已启用域名验证
2: 小程序管理后台配置
开发管理->开发设置->IP白名单+服务器域名
3: 运维后台对应的服务器和IP是否有https对应的证书
举个例子:
“{”errno“:600001,”errMsg“:”request:fail-200:net::ERR_CERT_COMMON_NAME_INVALID“}”,
上述错误是由于没有为服务器IP地址设置https证书。找后台或O&M兄弟来处理。
9.解决访问现有小程序的不存在路径
以uniapp开发的小程序为例,在App中添加以下代码。vue,与onLaunch处于同一级别。
未找到页面(e){
PrintLog(“找不到页面路径”,JSON.stringify(e))
let query=e.query;
let paramsArr=Object.keys(查询);
让参数=“”;
参数Arr。forEach((项目,索引)=>{
如果(索引===(paramsArr.length-1)){
params+=(item+'='+查询[item]);
}其他{
params+=(item+'='+查询[item]+'&');
}
});
if(e.path.includes('oldPage')){
uni.re启动({
url:`/pages/newPage/newPage?${params}`
})
PrintLog('未找到页面路径,打开新页面',参数)

返回false;
}其他{
uni.re启动({
网址:`/pages/home/home`
})
PrintLog('找不到页面路径,打开主界面')
}
},
10.如何监控小程序中的错误异常
以uniapp开发的小程序为例,在App中添加以下代码。vue,与onLaunch处于同一级别。
可以定期或立即向后台报告错误
错误也可以报告给微信WE分析平台或第三方小程序报告统计平台。
onError(错误){
PrintLog(“app错误”,JSON.stringify(错误))
如果(this.globalData.errorCount<6){
printLog(“app错误报告”)
传感器报告Weixin事件(“app_lauch”{
“errordetail”:JSON.stringify(错误)
})
this.global数据。错误计数+=1
}
},
11: 如何防止他人录制我们的视频资源
Android平台
以下代码可以使Android用户录制的所有视频图像变黑。
如果是屏幕截图,它将提示app不允许屏幕截图
wx.set捕获时的视觉效果({
visualEffect:'隐藏',
成功:(res)=>{
PrintLog('屏幕录制成功->',res)
},
失败:(错误)=>{
打印日志