仅为兼容低版本IOS而生,IOS 14.3+已无需本兼容方案即可实现H5录音;如果你不打算兼容低版本IOS,请不用研究RecordApp,直接使用简单强大的Recorder即可。
RecordApp会加载Recorder,因此算是完全兼容Recorder。在开启了原生App支持(Platforms.Native)的情况下,Hybrid App内会走App原生录音;在开启IOS微信支持(Platforms.IOS-Weixin)的情况下,在IOS(11.0-14.2)微信内会走微信JsSDK录音;其他情况走Recorder。
GitHub : 前往GitHub仓库 更多Demo : 在线编辑和运行 | H5 vue | App vue
QuickStart : /app-support-sample/QuickStart.html (Copy+后端微信接口即可使用,更适合入门学习)
类型 :
提示 : -
比特率 : kbps,越大音质越好
采样率 : hz,越大细节越丰富
JsSDK :
AppUseJS :
ms
kbps 测试音质用的,除比特率外其他参数可调整
WaveView SurferView Histogram1 H...2 H...3
,发送间隔ms
测试App : IOS Demo App:下载源码 自行编译 ,Android Demo App:下载APK (40kb,删除.zip后缀,源码)
iframe兼容性 : 测试在iframe里面请求录音权限的兼容性。最佳实践应该是让window.top(不适用于跨域)去加载RecordApp,iframe里面使用top.RecordApp;此测试未遵照此最佳实践,以模拟跨域iframe和同域下的复杂真实情况;H5录音在跨域时未设置相应策略权限永远是拒绝的;Native使用了postMessage转发兼容方案
浏览器环境情况 :
IsWx:${!!RecordApp.IsWx}
IsApp:${isApp}
Platforms:${RecordApp.Current.Key}

AudioContext:${!!window.AudioContext}
webkitAudioContext:${!!window.webkitAudioContext}
mediaDevices:${!!navigator.mediaDevices}
mediaDevices.getUserMedia:${!!(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia)}
navigator.getUserMedia:${!!navigator.getUserMedia}
navigator.webkitGetUserMedia:${!!navigator.webkitGetUserMedia}

URL:${location.href.replace(/#.+/g,"")}
UA:${navigator.userAgent}

RecordApp库修改时间(有可能修改了忘改):${RecordApp.LM}
Recorder库修改时间(有可能修改了忘改):${Recorder.LM}
本页面修改时间(有可能修改了忘改):${PageLM}