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
网友回复
有没有免费让ai自动帮你接管操作电脑的mcp服务?
mcp为啥用Streamable HTTP 替代 HTTP + SSE?
scratchjr有没有开源的前端html网页版本源代码?
多模态大模型能否根据ui交互视频来来模仿写出前端交互动画效果ui代码?
如何用阿里云oss+函数计算fc+事件总线EventBridge+消息队列+数据库+redis缓存打造一个高并发弹性系统?
阿里云函数计算 FC如何在海外节点搭建一个代理网络?
ai studio中gemini build的代码如何发布到github pages等免费网页托管上 ?
如何在cursor、qoder、trae中使用Claude Skills功能?
有没有不用u盘就能重装系统的开源工具?
python如何固定摄像头实时计算停车场停车位剩余数量?


