前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js 语音播报

js 语音播报

作者头像
tianyawhl
发布2022-05-06 18:34:05
2.7K0
发布2022-05-06 18:34:05
举报
文章被收录于专栏:前端之攻略前端之攻略

<template>

<div>

<el-button  @ click = " speak " > 播放 </el-button>

<el-button  @ click = " pause " > 暂停 </el-button>

<el-button  @ click = " resume " > 继续播放 </el-button>

<el-button  @ click = " cancel " > 取消播放 </el-button>

</div>

</template>

<script>

const synth = window . speechSynthesis ;

var speech = new SpeechSynthesisUtterance ();

export default  {

data () {

return  {

timer: null ,

i: 0 ,

message:  [

"南通报警" ,

"北京报警"

      ]

    };

  },

methods:  {

speak () {

// for (let i = 0; i < this.message.length; i++) {

// this.i = 0;

console . log ( synth . getVoices ());

let voices = synth . getVoices ();

speech . pitch = 1 ;  // 获取并设置话语的音调(值越大越尖锐,越低越低沉)

speech . rate = 3 ;  // 获取并设置说话的速度(值越大语速越快,越小语速越慢)

speech . voice = voices [ 0 ];  // 获取并设置说话的声音,感觉跟设置播放语言类似

speech . volume = 1 ;  // 获取并设置说话的音量

// speech.lang = 'zh-CN' // 设置播放语言

// speech.cancel() // 删除队列中所有的语音.如果正在播放,则直接停止

speech . text = this . message ;  // 获取并设置说话时的文本

synth . speak ( speech );

if  ( this . i == 1 ) {

clearTimeout ( this . timer );

        }  else  {

this . timer = setTimeout (()  =>  {

this . i ++ ;

this . speak ();

          },  1000 );

        }

// }

    },

// 暂停

pause () {

synth . pause ();

    },

// 继续播放

resume () {

synth . resume ();

    },

// 取消播放

cancel () {

synth . cancel ();

    }

  }

};

</script>

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档