Maison >interface Web >uni-app >Que dois-je faire si j'obtiens une erreur lors de l'implémentation de la fonction d'enregistrement dans uniapp ?

Que dois-je faire si j'obtiens une erreur lors de l'implémentation de la fonction d'enregistrement dans uniapp ?

PHPz
PHPzoriginal
2023-04-20 15:05:371281parcourir

Avec le développement de la technologie Internet mobile, le développement d'applications mobiles est devenu une compétence nécessaire. Le développement multiplateforme basé sur le framework uniapp optimise l'efficacité du travail des développeurs. Cependant, lors de l'implémentation de la fonction d'enregistrement dans uniapp, nous pouvons rencontrer des erreurs. Examinons ces problèmes et leurs solutions.

Problème 1 : wx api n'est pas déclaré ou n'est pas dans le module actuel

Tout d'abord, nous devons être clairs : uniapp est construit sur la base du framework vue, donc sa partie API est similaire à vue API. Si vous rencontrez ce problème, la raison est que nous ne l'avons pas déclaré après l'introduction de l'API wx.

Solution :
Nous devons introduire wx api dans vue et la déclarer dans le code avant de pouvoir l'utiliser. L'exemple de code est le suivant :

import wx from 'uni-app/weixin.js';
export default{
   data(){
      return {
          recoderManager:null   // 声明参数
      }
   },
   //在mounted部分进行wx api的声明
   mounted(){
      this.recoderManager = wx.getRecorderManager()
   }
}

Question 2 : recorder.start n'est pas une fonction

Ce problème est évident, c'est-à-dire que lorsque nous appelons recorder.start(), une erreur est signalée. La raison est que nous n’avons pas instancié correctement le recorderManager.

Solution :
Nous devons instancier l'API wx dans la partie montée. Reportez-vous au code ci-dessous :

import wx from 'uni-app/weixin.js';
export default{
   data(){
      return {
          recoderManager:null   // 声明参数
      }
   },
   //在mounted部分进行wx api的实例化
   mounted(){
      this.recoderManager = wx.getRecorderManager()
   },
   methods:{
      //在该方法中可以调用 start()方法
      recoding(){
           this.recoderManager.start({   //注意参数
                 duration:60000,
                 format:'mp3'
           });
           //当录音结束后触发该函数
           this.recoderManager.onStop((res)=>{
               var voice = res.tempFilePath   //得到当前录音的文件路径
           })
      },
   }
}

Problème 3 : échec de recorder.start : démarrage audiomanager sans succès

Ce problème peut survenir sur les appareils iOS. La raison en est que le navigateur actuel ne le prend pas en charge ou que l'autorisation audio est désactivée. La solution est la suivante :

Solution :
Nous devons accéder à la page des paramètres et vérifier si l'application actuelle a obtenu les autorisations audio. Si l'autorisation audio est désactivée, nous devons l'activer. De plus, nous pouvons essayer de mettre à jour la version du navigateur, ce qui pourrait résoudre de tels problèmes.

Ci-dessus sont trois problèmes courants et leurs solutions lorsque Uniapp implémente la fonction d'enregistrement. Si vous suivez les étapes ci-dessus, vous devriez pouvoir éviter ces problèmes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn