Si los monitores de miniprograma tienen la función de grabación
Información adicional:
El código es el siguiente:
datos datos
datos: {
playerState : png
Iniciar grabación
tape() {
if ( this.data.playerState == 0) { //igual a 0 indica la función de grabación
/La grabación está en progreso, haga clic en él para finalizar la grabación, el ícono también debe ser el ícono de reproducción y la función se cambia a reproducir
if (this.setData({
src: '/assets /imgs/voiceEnd.png',
beginAndEnd: "Finalizar grabación de voz",
voiceType: true
})
wx .showToast({
título: "Grabando...
icono: 'ninguno',
duración: 60000
})
opciones constantes = {
duración: 60000, //duración de la grabación
sampleRate: 44100, / /tasa de muestreo<
numberOfChannels: 1, //Número de canales a grabar
EencodeBitRate: 192000, //Velocidad de bits de codificación, los valores válidos se muestran en la siguiente tabla
formato: wav', //Formato de audio
frameSize: 50 //Especifique el tamaño del fotograma (kilobytes). Si se pasa frameSize, el contenido del archivo grabado se llamará después. cada grabación del tamaño de fotograma especificado. Sin embargo, si no se especifica frameSize, no se llamará. Solo admite formato mp3 data.interval = setInterval() =gt { //Limitar la grabación a 60 segundos. >num
if (num gt; 59 ) { //llamar al método para detener la grabación a los 60
this.end()
}
}, 1000)
}
} else { //no esperes a que se reproduzca 0, que es 1
if ( this. data.voiceType) {
this.setData ({
voiceType: false,
src: '/assets/imgs/player.png', p>
beginAndEnd: "Reproducir grabación"
})
innerAudioContext.stop() // Detener. La reproducción del audio nuevamente después de detenerse comenzará desde el principio.
} else {
this.setData({
voiceType: true,
src: '/assets/imgs/stop. png',
beginAndEnd: "Detener reproducción"
})// Enlace de datos para reproducir audio directamente, solo se admiten rutas absolutas.
innerAudioContext.src = this.data.voice
innerAudioContext.play() //reproducir
innerAudioContext.onEnded(() =gt; { // Escuche el audio reproduciéndose naturalmente hasta el final del evento
innerAudioContext.stop() //stop.
this.setData({
voiceType: false,
src: '/assets/imgs/player.png',
beginAndEnd: "Reproducir grabación"
})
})
}}
},
end() {
clearInterval(this.data.interval) //Borrar temporizador p>
wx.hideToast() //Ocultar el icono normal de grabación
wx.showToast({
título: 'Grabación finalizada.
icon: ' none',
duración: 2000
})
this.setData({
beginAndEnd: 'Reproduciendo voz' ,
p>
playerState: 1,
voiceType: false
})
var that = this
// Monitorear evento de finalización de grabación
wx.getRecorderManager().onStop(res =gt; {
console.log(res)
// Llama al evento personalizado para cargar audio y devolver la ruta del audio
const {
uploadRecord } = require('.../.../...//p/ 71f2e94c3334
Fuente: Jianshu
Copyright. Para reimpresiones comerciales, comuníquese con el autor para obtener autorización. Para reimpresiones no comerciales, indique la fuente.