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
网友回复
WinUI3和Electron有啥不同?
有哪些版权中心可以合作发布短剧漫剧进行赚钱?
ai装修解压视频提示词如何写?
有哪些视频钩子可以解决5s完播低问题?
seedance2如何根据一张九宫格分镜头图片生成ai视频短剧?
www.gstatic.com打开报错net::ERR_TUNNEL_CONNECTION_FAILED
果蝇大脑神经在计算机中复原意味人脑神经和意识也可在计算机中复原?
cosyvoice-v3.5声音克隆报错:Error during speech synthesis: start speech synthesizer failed within 5s.
html如何实现二进制程序转成汇编代码?
python如何通过音色描述和说话内容生成语音?


