1、录制声音上传
通过tt.getRecorderManager录制声音然后调用tt.uploadFile上传到后端即可。
var DEFAULT_COUNT_DOWN = 60000; var cdtimer; Page({ data: { cd: DEFAULT_COUNT_DOWN, isRecording: false, isPaused: false, recordOption: { duration: DEFAULT_COUNT_DOWN, sampleRate: 16000, encodeBitRate: 48000, numberOfChannels: 2, format: 'aac', frameSize: 100 }, recordFilePath: '' }, startCountDown() { this.setData({ cd: DEFAULT_COUNT_DOWN }); clearInterval(cdtimer); cdtimer = setInterval(() => { this.setData({ cd: this.data.cd - 100 }); }, 100); }, pauseCountDown() { clearInterval(cdtimer); }, continueCountDown() { clearInterval(cdtimer); cdtimer = setInterval(() => { this.setData({ cd: this.data.cd - 100 }); }, 100); }, stopCountDown() { clearInterval(cdtimer); this.setData({ cd: DEFAULT_COUNT_DOWN }); }, onLoad: function(options) { this.recorderManager = tt.getRecorderManager(); this.recorderManager.onStart(() => { this.setData({ isRecording: true, recordFilePath: '', isPaused: false }); this.startCountDown(); }); this.recorderManager.onResume(() => { this.setData({ isRecording: true, isPaused: false }); this.continueCountDown(); }); this.recorderManager.onPause(() => { this.setData({ isRecording: false, isPaused: true }); this.pauseCountDown(); }); this.recorderManager.onStop(({ tempFilePath }) => { this.setData({ isRecording: false, isPaused: false, recordFilePath: tempFilePath }); this.stopCountDown(); tt.showToast({ title: '录音结束' }); }); this.recorderManager.onFrameRecorded(({ frameBuffer, isLastFrame }) => {}); this.recorderManager.onError(err => { console.error(err); }); }, onUnload: function() { this.stop(); clearInterval(cdtimer); }, start() { if (this.data.isRecording) { tt.showToast({ title: '正在录音' }); } else { this.recorderManager.start(this.data.recordOption); } }, pauseorresume() { if (this.data.isPaused) { this.recorderManager.resume(); } else { this.recorderManager.pause(); } }, stop() { this.recorderManager.stop(); } });
参考:https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/api/media/record/tt-get-recorder-managerhttps://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/api/network/http/tt-upload-file/
2、抖音小程序选择声音文件上传
这个需要用到webview打开h5上传文件页面,最后回调通知抖音小程序了。
参考这个:https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/tutorial/basic-ability/web-view-component
网友回复
python+Quill如何实现多人实时文档编辑html?
什么是ai的6A工作流规则?
&、nohup、screen、tmux在linux中后台执行的区别?
python如何将调用ai大模型生成的文件修改行操作指令修改原文件后保存?
python如何将2d平面线图转换成数字2d线稿图?
acejs代码编辑器如何调用openai api实现选择代码修改与代码自动补全?
ace.js如何获取选择文本的开始和结束行数?
如何把qwen code cli或gemini cli的免费调用额度换成http api对外开放接口?
如何限制windows10电脑只能打开指定的程序?
python如何调用ai大模型实现web网页系统的功能测试并生成测试报告?