百度音频播放指定文字

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>hello</title>
    <link rel="stylesheet" type="text/css" href="http://s0.ifengimg.com/2017/04/24/style_2fb9e29e.css">
    <script src="http://s0.ifengimg.com/2017/01/06/zepto.min_0089cfa1.js"></script>
    <script>
        document.documentElement.style.fontSize = document.documentElement.clientWidth/7.5+'px';
    </script>
</head>
<body>
<section class="wrap" style="transform: translate3d(0, 0, 0);-webkit-transform: translate3d(0, 0, 0);">
    <div class="content">
        <!--banner与滚动新闻-->
        <div class="top">
            <img class="banner" src="http://s0.ifengimg.com/2017/04/20/banner_4a8d8b3b.jpg" alt="" >
            <div class="newScroll">
                <div id="audioBtn0" class="audios"><img src="http://s0.ifengimg.com/2016/12/08/play_456a0994.gif" alt=""></div>
                <dl>
                    <dt>翔海房产携金域蓝湾荣耀登陆北京</dt>
                    <dd class="mainNewsScroll-list">
                        <ul>
                            <li id="audioCon0">翔海房产携金域蓝湾荣耀登陆北京翔海房产携金域蓝湾荣耀登陆北京翔海房产携金域蓝湾荣耀登陆北京11</li>
                        </ul>
                    </dd>
                </dl>
            </div>
            <!--凤凰头条-->
            <h3 class="h3 headline"></h3>
            <div>
                <dl class="headList">
                    <dt>标题标题标题标题标题标题</dt>
                    <dd>
                        <span id="audioBtn1" class="audios"></span>
                        <p id="audioCon1">11111111111111111111111111111111111111111111</p>
                    </dd>
                </dl>
                <dl class="headList">
                    <dt>标题标题标题标题标题标题</dt>
                    <dd>
                        <span id="audioBtn2" class="audios"></span>
                        <p id="audioCon2">222222222222222222222222222222222</p>
                    </dd>
                </dl>
                <dl class="headList">
                    <dt>标题标题标题标题标题标题</dt>
                    <dd>
                        <span id="audioBtn3" class="audios"></span>
                        <p id="audioCon3">333333333333333333333333333333</p>
                    </dd>
                </dl>
            </div>
        </div>
    </div>
</section>
<textarea id="wow" style="display: none"></textarea>
<script>
    $(function(){
            function baiduAudio(musicH5, words){
                this.id=musicH5;
                this.musicH5 = document.getElementById(musicH5);
                this.words = document.getElementById(words);
                this.activePlayer = null;
                this.embed = null;
                this.name = null;
                this.audio = null;
                this.content = null;
                this.Mp3Url = null;
                this.isPlay = false;
                this.baiduUrl = "http://tts.baidu.com/text2audio";
                this.wow = document.getElementById("wow");
            }
            baiduAudio.prototype = {
                init: function(){
                    var me = this;
                    me.play();
                    me.musicH5.onclick = function(event){//开关控制
                        if(me.isPlay){
                            me.activePlayer.pause();
                            me.isPlay = false;
                            me.musicH5.className = "";
                        }else{
                            me.activePlayer.play();
                            me.isPlay = true;
                            me.musicH5.className = "current";
                        }
                        me.wow.value = me.activePlayer.src;
                    };
                    //切换时关闭语音
                    $('.audios').on('click',function(){
                        if($(this).attr('id')!== me.id){
                            me.activePlayer.pause();
                        }
                    })
                },
                getMp3Url: function(){//百度请求数据返回mp3链接
                    this.content = this.words.innerHTML;
                    return this.baiduUrl + "?idx=1" + "&tex=" + encodeURIComponent(encodeURIComponent(this.content)) + "&cuid=baidu_speech_demo" + "&cod=2" + "&lan=zh&ctp=1" + "&pdt=1" + "&spd=5&per=3&vol=5&pit=5"
                },
                playForNoH5: function(){//embed
                    var me = this;
                    me.activePlayer && (me.activePlayer.pause()/*, $(activePlayer).remove()*/);
                    me.name = "j-embed-" + (new Date - 0);
                    me.embed = document.createElement('embed');
                    me.embed.id = me.name;
                    me.wow.value = me.Mp3Url;
                    me.embed.src = me.Mp3Url;
                    me.embed.autostart = false ;
                    me.musicH5.appendChild(me.embed);
                    me.activePlayer = document.getElementById(me.name);
                    //me.active();
                },
                playForH5: function(){//H5
                    var me = this;
                    me.activePlayer && me.activePlayer.pause();
                    me.audio = new Audio(me.Mp3Url);
                    me.activePlayer = me.audio,
                            me.audio.src = me.Mp3Url;
                    me.active();
                },
                active: function(){//监听播放状态
                    var me = this;
                    me.activePlayer.onpause = function(){//暂停
                        me.musicH5.className = "";
                        me.isPlay = false;
                    };
                    me.activePlayer.onended = function() {//结束
                        me.musicH5.className = "";
                        me.isPlay = false;
                    };
                    me.activePlayer.onplaying = function() {//播放
                        me.musicH5.className = "current";
                        me.isPlay = true;
                    };
                    //me.activePlayer.play();
                },
                play: function(){//执行
                    this.Mp3Url = this.getMp3Url();
                    document.createElement("audio").canPlayType && document.createElement("audio").canPlayType("audio/mpeg") ? this.playForH5() : this.playForNoH5()
                },
                pause: function(){
                    me.activePlayer && me.activePlayer.pause && me.activePlayer.pause();
                }
            };
        //音频播放
        var arrs=[];
        for(var i=0;i<$('.audios').length;i++){
            arrs.push(new baiduAudio("audioBtn"+i, "audioCon"+i));
            arrs[i].init();
        }
    });
</script>
</body>
</html>

  

posted @ 2017-06-05 19:16  xiangcy  阅读(360)  评论(0编辑  收藏  举报