美文网首页
js使用百度翻译的接口实现文字转音频的播报

js使用百度翻译的接口实现文字转音频的播报

作者: MC桥默 | 来源:发表于2020-11-20 16:55 被阅读0次

前言

项目中,你是否也遇到过这种需求,当触发某个事件时,需要把文字转化成音频播放出来。而很多时候我们会使用已经录制好的MP3文件来进行音频播放,但是此需求中播报的内容可能不固定,这该怎么办呢?

实现方法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>百度语音测试</title>
    <script type="text/javascript">
        function videoPlay(){
            var url = "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=&text=" + encodeURI('近日,奚梦瑶何猷君参与录制综艺节目');
            var v = new Audio(url);
            //v.src = url;
            v.loop = true;
            v.play();//开始播放
            //v.pause();//播放暂停
            v.addEventListener('play', function () { //监听播放开始,播放开始执行的函数
                console.log("开始播放");
            });
            v.addEventListener('ended', function () { //监听播放结束
                console.log("播放结束");
            }, false);
        }
    </script>
</head>
<body>
<div>
    <input type="text" id="ttsText">
    <input type="button" id="tts_btn" onclick="videoPlay()" value="播放">
</div>
</body>
</html>

后记

此方法由百度翻译提供,不需要任何插件的支持,联网就能用。另外我们还可以监听音频的各种事件,如开始播放、暂停、加载等等。

音频加载后获取视频的长度
<script>
    var elevideo = document.getElementById("video");
    elevideo.addEventListener(‘loadedmetadata‘, function () { //加载数据
        //视频的总长度
        console.log(elevideo.duration);
    });
</script>
音频开始播放
<script>
    var elevideo = document.getElementById("video");
    elevideo.addEventListener(‘play‘, function () { //播放开始执行的函数
        console.log("开始播放");
    });
</script>
音频正在播放中
v.addEventListener(‘playing‘, function () { //播放中
       console.log("播放中");
    });
音频加载中
v.addEventListener(‘waiting‘, function () { //加载
        console.log("加载中");
    });
音频暂停播放
v.addEventListener(‘pause‘, function () { //暂停开始执行的函数
        console.log("暂停播放");
    });
音频结束播放
v.addEventListener(‘ended‘, function () { //结束
        console.log("播放结束");
    }, false);

相关文章

网友评论

      本文标题:js使用百度翻译的接口实现文字转音频的播报

      本文链接:https://www.haomeiwen.com/subject/fxtjiktx.html