阅读 501
字节跳坑小程序开发

字节跳坑小程序开发

无力吐槽, 记个流水账

  1. iOS真机, 打开vconsole, APP会拦截请求, tt.request的fail钩子会返回request:fail app in background, 而且会关闭定时器, 莫名其妙, 文档里也没说会出现这种情况
  2. iOS真机, 代码报错不会显示在vconsole里
  3. iOS真机里没有window.btoa方法转ArrayBufferbase64, 开发者工具里倒是有这个方法, 还好可以hack
export function bufferToBase64 (input) {
	var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
	var output = ''
	var chr1, chr2, chr3, enc1, enc2, enc3, enc4
	var i = 0

	while (i < input.length) {
		chr1 = input[i++]
		chr2 = i < input.length ? input[i++] : Number.NaN
		chr3 = i < input.length ? input[i++] : Number.NaN

		enc1 = chr1 >> 2
		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)
		enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)
		enc4 = chr3 & 63

		if (isNaN(chr2)) {
			enc3 = enc4 = 64
		} else if (isNaN(chr3)) {
			enc4 = 64
		}
		output += keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4)
	}
	return output
}
复制代码
  1. 关于录音, 见字节官方傲娇的输出格式

同见微信支持的输出格式, 真是别人家的api 对于需要调用Automatic Speech Recognition服务的开发者简直菊花一紧, 科大讯飞, 腾讯云, 阿里云都不支持m4a格式, 需要咱们工具人把每一个音频frameBuffer转成支持的格式

  1. Audiocontext.createscriptprocessor节点功能不完善, 会引起程序闪退

  2. window is undefined, 引入适配, 真机环境默认没有window

require('adapter.js')

__globalAdapter.init()
复制代码
  1. canvas绘制不出来, 使用window下的canvas, 不要使用tt的canvas, tt的canvas会被window的canvas覆盖在下方
const canvas = window.canvas // 要用window下的canvas
canvas.style.width = window.innerWidth // 全屏
canvas.style.height = window.innerWidth
``


复制代码
文章分类
前端
文章标签