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
网友回复
webgl与webgpu有啥不同?
Zero Trust的Tunnels怎么设置泛域名解析及http服务获取当前访问域名?
Spec Coding(规范驱动编码)和 Vibe Coding(氛围编程)有啥区别?
如何在国内服务器上正常运行未备案的域名网站?
Cloudflared 和WARP Connector有啥不同?
有没有让本地开源大模型越狱的方法或插件啥的?
如何使用Zero Trust的Tunnels技术将局域网电脑web服务可以公网访问呢?
编程领域ai大模型的排名是怎么样的?
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?


