uniapp réalise la fonction d'enregistrement et de cri

 Allez d'abord directement au code :

const recorderManager = uni.getRecorderManager()	
onShow() {
			this.test()
		},
		methods: {
			test() {
				uni.getSetting({
					success: (res) => {
						console.log('res.authSetting', res.authSetting['scope.record']);
						if (res.authSetting['scope.record'] == false) {
							uni.showToast({
								title: '请先开启麦克风授权',
								icon: 'none'
							})
							return false
						}
						console.log(111);
						uni.authorize({
							scope: 'scope.record',
							success: (res) => {
								recorderManager.start({
									format: "mp3"
								})
							},
							fail: (res) => {
								uni.showToast({
									title: '喊话失败',
									icon: 'none'
								})
							}
						})
					}
				})
			}

		},

Effet obtenu :

Lorsque vous accédez à cette page pour la première fois, une boîte de sélection rapide apparaîtra immédiatement, demandant la permission d'obtenir le microphone, comme indiqué sur la figure

 

Cette boîte de dialogue apparaîtra une fois. Après avoir choisi l'une des deux options de refus et d'autorisation, nous entrerons le rappel de succès ou d'échec de la fonction correspondante. Par exemple, après avoir sélectionné rejeter, la prochaine fois que nous entrerons dans la page, nous entrera directement le rappel d'échec au lieu de La fenêtre contextuelle demande à nouveau l'autorisation,


Analysez spécifiquement le code ci-dessus :

La première chose à expliquer est que les méthodes ci-dessus sont les API officielles fournies par uniapp, qui sont utilisées pour obtenir des autorisations. Les détails peuvent être consultés dans les documents officiels. L'article est juste pour vous aider, vous et les lecteurs, à comprendre l'idée de ​obtenir les autorisations~

uni.getRecorderManager() | site officiel de l'application uni

1. Tout d'abord, lorsque vous accédez à la page, appelez  uni.getSetting  pour obtenir le paramètre d'autorisation de microphone actuel de l'utilisateur dans le succès du rappel,

2. Il y a un paramètre authSetting dans le callback success , qui est utilisé pour déterminer s'il y a une autorisation de microphone,

 

 

3. Chaque fois que vous accédez à la page, celle-ci évalue d'abord les paramètres d'autorisation actuels de l'utilisateur pour le microphone.

if (res.authSetting['scope.record'] == false)

 Mais lors de la première saisie, la valeur de res.authSetting['scope.record'] est indéfinie,

console.log('res.authSetting', res.authSetting['scope.record']);//undefined

4. Par conséquent, si la condition de jugement n'est pas remplie, elle n'entrera pas dans l'instruction if, donc le code suivant sera exécuté directement

	uni.authorize({
							scope: 'scope.record',
							success: (res) => {
								recorderManager.start({
									format: "mp3"
								})
							},
							fail: (res) => {
								uni.showToast({
									title: '喊话失败',
									icon: 'none'
								})
							}
						})

 

La méthode uni.authorize invitera la page à apparaître immédiatement, comme indiqué dans la figure ci-dessous

5. Lorsque nous cliquons sur l'un des éléments, c'est-à-dire que nous choisissons d'entrer le rappel de succès ou d'échec, sélectionnez Autoriser => entrez le rappel de succès et appelez la méthode uni.getRecorderManager() dans le rappel de succès combiné avec le toucher démarrer et appuyer sur l'applet Terminer l'événement pour terminer l'enregistrement, sélectionner rejeter => rappel d'échec, demander d'ouvrir l'autorisation du microphone

Probablement en pensant comme ça, c'est un record

Je suppose que tu aimes

Origine blog.csdn.net/a666666000/article/details/127228562
conseillé
Classement