微信JSSDK的录音功能就是调用文档中提供的接口 wx.startRecord(); 但是这个接口没有回调,导致不能判断录音是否成功。
于是只有看微信js的源文件(jweixin-1.0.0.js)看有没有办法实现,结果发现有这么一段代码:
function g(a, b, c) { var d, e, f; switch (delete b.err_code, delete b.err_desc, delete b.err_detail, d = b.errMsg, d || (d = b.err_msg, delete b.err_msg, d = h(a, d), b.errMsg = d), c = c || {}, c._complete && (c._complete(b), delete c._complete), d = b.errMsg || "", E.debug && !c.isInnerInvoke && alert(JSON.stringify(b)), e = d.indexOf(":"), f = d.substring(e + 1)) { case "ok": c.success && c.success(b); break; case "cancel": c.cancel && c.cancel(b); break; default: c.fail && c.fail(b) } c.complete && c.complete(b) }
实验后发现通过下面方法可以实现需要的回调:
wx.startRecord({success:function() { console.log("成功回调"); }, fail:function() { console.log("失败回调"); } });其中 cancel 和 complete 一样的使用方法。