做一款拍摄短视频和照片的微信小程序

做一款拍摄短视频和照片的微信小程序,第1张

做一个款短视频拍摄的微信小程序,看了下微信接口,以为很简单,大致步骤开始拍摄,停止拍摄,保存,就结束了,谁知道做的过程中发现一些问题。

先看下我做的大概样式

开始调用wx.startRecord()事件后,timeoutCallback方法好像并不会随着wx.stopRecord()的调用而销毁。具体情况复现流程为,拍摄15s中视频后,停止拍摄,在下次开始拍摄后,时间大于15s,其实是在同一个camera实例触发多次录像事件,会累计多次拍摄的时长,然后触发timeoutCallback事件,而造成后续触发stopRecord失效,导致录像保存失败。

解决方法,如果不是多次拍摄保存为一条视频,那么每次拍摄的时候创建一个新的camera实例

微信小程序录像默认时长是30s,如果录像时长超过会触发timeoutCallback。但是有一种情况在录像时间达到27s~28s,自己触发wx.stopRecord()偶尔会保存失败,或者调用无反应。经过多次测试发现,在自己调用wx.stopRecord()保存视频的时候,先触发了timeoutCallback,所以要考虑视频保存到本地的时间。

解决方法,如果需要自己手动保存视频,建议安全时间为25s左右。

在小程序做录像功能要有三个授权,第一是摄像头授权,第二是相册授权(保存文件用),第三是录音授权。

因为抖音的 *** 作习惯,一个按钮两个功能,单击为拍照,长按为拍摄视频。单击拍照因为打开小程序的时候,默认就强制要求开通权限,所以在长按按钮会d出录音授权的系统d窗。

长按按钮开始录像功能,手指松开录像结束,保存文件。但是在长按触发录音授权的系统d窗,我以为会触发touchend或者touchcancel事件,但是测试后发现授权的系统d窗d出后,touchcancel并不会触发,而在关闭系统d窗后会触发touchend。

解决方法,严格控制逻辑中的事件触发时间点和触发方式。

卡,实在是卡,不建议在cover-view中使用css动画

还有其他多少琐碎问题,就靠大家自行发觉了。

1、域名必须是HTTPS

非HTTPS的域名不被微信小程序允许。

2、input组件placeholder字体颜色

写在placeholder-class里面的color并不生效,需要写在placeholder-style里面就可以了。

3、wx.navigateTo无法跳转到带tabbar的页面

带有tabbar的页面,必须使用wx.switchTab进行跳转。

4、tabbar在切换时页面数据无法刷新

tabbar的实现可能是显示和隐藏view,所以,不会一直调用page.onLoad()方法,可以尝试把代码逻辑写在page.onShow()里面。

5、如何获取shareTickets

获取shareTickets需要在app.onLaunch或者app.onShow里面才能获取到,而不是page.onShow,请一定要注意。

注:建议在app.onShow里面去获取,app.onLaunch不是一直会执行。

6、getPhoneNumber获取手机号

目前该接口针对非个人开发者,且完成了认证的小程序开放。个人开发者是没办法调用这个API的。

7、wx.previewImage图片预览

预览的图片URL必须是HTTPS开头,不能是本地图片。

8、wx.playVoice音频播放

必须保证音频文件已经在本地,比如在wx.startRecord后,可以获取到filePath。或者提前调用wx.downloadFile来下载资源文件,然后再播放。

9、API老版本兼容

可以用wx.canIUse或者wx.getSystemInfoSync来进行判断,老版本给出相应提示即可。

10、获取系统信息

wx.getSystemInfo,可得到系统语言、屏幕宽高、微信版本号、 *** 作系统、设备像素比、客户端甚础库版本等信息。

11、如何去掉自定义button灰色的圆角边框

主要是button的伪元素设置了样式,去掉即可: button::after{ display: none}。

12、回到页面顶部

回到页面顶部,有两种方式:

A、使用scroll-view设置为纵向滚动,然后设置scroll-top值;

B、使用wx.pageScrollTo方法,此方法是1.4.0开始支持,所以要做低版本兼容;

13、input textarea是APP的原生组件,z-index层级最高

有做过搜索框的同学,可能会遇到IOS下面,设置icon的z-index后,依然无法显示。建议做显示隐藏效果:点击之前是一个view,点击之后隐藏view,显示input~。

14、小程序如何冷启动

小程序的机制,是在退出五分钟内进入,就会显示的是退出前的页面,如果你希望进入小程序都相当于冷启动的方式,直接进入主页面。你可以在page的onUnload里面里面set一个值,然后在app的onShow的时候判断这个值,然后决定是否跳到首页~

15、一段文字如何换行

小程序中唯一可以实现换行的标签组件是text。

注:text中不支持<br>,只能使用\n进行换行。

16、设置最外层标签的margin-bottom在IOS下不生效

margin-bottom在安卓和开发工具里面都正常,就是在IOS下不起效,建议改成padding-bottom。

17、小程序中canvas的图片不支持base64格式

base64格式图片,在开发工具里面可以正常显示,真机上没有显示。建议修改成带https开头的url形式。

二,可以直接在第三方平台上面开发小程序


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8008465.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存