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
网友回复
阿里通义大模型哪些是支持多模态的api的ai模型?
js如何实现浏览器中离线语音唤醒语音聊天小助手?
浏览器中如何将WebM视频转成mp4视频?
parlant如何改成qwen 的apikey与baseurl?
如何写一个chrome插件实现截屏自动生成步骤图文教程转成pdf或网页?
python如何通过阿里云的api对域名进行解析和ecs主机服务器进行启动停止等操作?
Tesla Robotaxi可以让特斯拉车自动无人驾驶跑滴滴为车主赚钱,国内以后也会这样吗?
有没有可以监控安卓手机上的app打开后偷偷摸摸做了啥的监控软件?
webrtc进行p2p连接发送的文本音视频文件是否是加密的?
如何让一个可爱的三维动物通过three在浏览器中有表情动作的自然说话?