vue3使用科大讯飞voice-input-button2 (原创)

voice-input-button2是一个用于语言识别分析成文字的工具

vue3按照官网的文档使用voice-input-button2会报以下错误:

 Cannot set properties of undefined (setting 'IATConfig')   

那么我们应该如何解决?

1,导入voice-input-button2 和 @efox/emp-vuett

npm install voice-input-button2
npm install @efox/emp-vuett

2,

在官网获取appId  apiKey  apiSecret

官网地址:控制台-讯飞开放平台 (xfyun.cn)

3,在前端使用以下代码  (该方法是按需导入,不需要修改配置文件)

<template>

  <div id="app">

    <div class="result">{{result}}</div>

    <div>{{recordReady2}}</div>

    <div class="voice-input-button-wrapper">

      <div id="voice"></div>

      <voice-input-button

        appId="填写你的appId"

        apiKey="填写你的apiKey"

        apiSecret="填写你的apiSecret"

        color="#fff"

        tipPosition="top"

        interactiveMode="touch"

        v-model="result"

        :record="showResult"

        :record-start="recordStart"

        :record-stop="recordStop"

        :record-blank="recordNoResult"

        :record-failed="recordFailed"

        :record-ready="recordReady"

        :record-complete="recordComplete"

      >

        <template v-slot:no-speak>没听清您说的什么</template>

      </voice-input-button>

    </div>

  </div>

</template>

<script>

import voiceInputButton from 'voice-input-button2'

import { Vue2InVue3 } from "@efox/emp-vuett";

const ContentInVue3 = Vue2InVue3(voiceInputButton, "voice");

export default {

  name: 'App',

  components: {

    "voice-input-button" : ContentInVue3

  },

  data(){

    return {

      result : "",

    }

  },

  methods: {

    recordReady:function () {

      console.info('按钮就绪!')

    },

    recordStart:function () {

      console.info('录音开始')

    },

    showResult:function (text) {

      console.info('收到识别结果:', text)

    },

    recordStop:function () {

      console.info('录音结束')

    },

    recordNoResult:function () {

      console.info('没有录到什么,请重试')

    },

    recordComplete:function (text) {

      console.info('识别完成! 最终结果:', text)

    },

    recordFailed:function (error) {

      console.info('识别失败,错误栈:', error)

    }

  },

  }

</script>

<style>

  html, body {

    margin: 0;

    width: 100%;

    height: 100%;

  }

  *{

    box-sizing: border-box;

  }

  #app {

    position: absolute;

    top: 100px;

    left: 0;

    right: 0;

    margin: 0 auto;

    width: 400px;

  }

  .voice-input-button-wrapper{

    width: 42px;

    height: 42px;

    background-color: mediumpurple;

    border-radius: 50%;

  }

  .result{

    width: 100%;

    padding: 25px;

    border: #e2e2e2 1px solid;

    border-radius: 5px;

    line-height: 2;

    font-size: 16px;

    color: #727272;

    min-height: 24px;

    margin-bottom: 25px;

  }

</style>

如有问题,请在评论区

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
您可以使用 Vue 3 的表单验证功能来验证 Naive UI 的 NInput 组件。以下是一个例子: 首先,您需要在组件中使用 `v-model` 绑定数据。例如: ```html <template> <n-input v-model="name" placeholder="请输入姓名"></n-input> </template> <script> export default { data() { return { name: '' } } } </script> ``` 然后,您可以使用 Vue 3 的表单验证功能来验证该字段。例如: ```html <template> <n-input v-model="name" placeholder="请输入姓名" :rules="nameRules"></n-input> </template> <script> export default { data() { return { name: '', nameRules: [ { required: true, message: '请输入姓名', trigger: 'blur' }, { min: 2, max: 10, message: '长度在 2 到 10 个字符', trigger: 'blur' } ] } } } </script> ``` 在上面的代码中,我们为 `name` 字段添加了两个验证规则,一个是必填的,一个是长度在 2 到 10 个字符之间。具体的验证规则可以根据您的需求进行修改。 最后,您需要在表单提交时调用 `validate` 方法来验证表单。例如: ```html <template> <n-form ref="form" :model="form" :rules="rules"> <n-input v-model="form.name" placeholder="请输入姓名" :rules="nameRules"></n-input> <!-- 其他表单项 --> <n-button type="primary" @click="submit">提交</n-button> </n-form> </template> <script> export default { data() { return { form: { name: '', // 其他表单项 }, rules: { name: [ { required: true, message: '请输入姓名', trigger: 'blur' }, { min: 2, max: 10, message: '长度在 2 到 10 个字符', trigger: 'blur' } ], // 其他表单项的验证规则 } } }, methods: { submit() { this.$refs.form.validate(valid => { if (valid) { // 表单验证通过,可以提交表单 } else { // 表单验证失败,提示用户 } }) } } } </script> ``` 在上面的代码中,我们使用了 Naive UI 的 NForm 和 NButton 组件,通过调用 `validate` 方法来验证表单。具体的表单验证规则可以参考 Vue 3 的官方文档。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值