• jQuery Text-to-Speech 谷歌在线语音


    <!DOCTYPE html>
    <html>
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>jQuery  Text-to-Speech 谷歌在线语音</title>
    <script type='text/javascript' src='jquery-1.9.1.min.js'></script>
    <script type="text/javascript">
    function html5_audio(){
        var a = document.createElement('audio');
        return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
    }
     
    var play_html5_audio = false;
    if(html5_audio()) play_html5_audio = true;
     
    function play_sound(url){
        if(play_html5_audio){
            var snd = new Audio(url);
            snd.load();
            snd.play();
        }else{
            $("#sound").remove();
            var sound = $("<embed id='sound' type='audio/mpeg' />");
            sound.attr('src', url);
            sound.attr('loop', false);
            sound.attr('hidden', true);
            sound.attr('autostart', true);
            $('body').append(sound);
        }
    }
    function readme(txt){
        play_sound("http://translate.google.com/translate_tts?ie=UTF-8&q="+encodeURIComponent(txt)+"&tl=zh-cn&total=1&idx=0prev=input");    //英文  en //中文     
    }
    readme('hello world');
    $(function(){
        $('#btnread').click(function(){
            readme($('#inp').val());
        });
    });
    </script>
    </head>
    
    <body>
    <input type="text" id="inp"  value="涂聚文"/> <input type="button" id="btnread" value="Klick me"/>
    </body>
    
    </html>
    

     http://code.google.com/p/jqtts/source/checkout

    /*!
       jQuery Text-to-Speech plugin
       --------------------------------------------
       http://code.google.com/p/jqtts/
    
       Copyright (c) 2010, Kevin Hoang Le. All rights reserved.
       Code provided under the MIT License:
       http://www.opensource.org/licenses/mit-license.html
    
       v0.1
    */
    
    (function($) {
        $.fn.extend({
            jtts: function(options) {
                var defaults = {
                    lang: 'en',
                    msPerWord: 900
                };
               
                var options = $.extend(defaults, options);            
                //passed-in
                var sentences = [];
                var lang;
                var msPerWord;
                var elem;
                //internal
                var plugin;
                var ttsUrl = 'http://translate.google.com/translate_tts';          
                var inProgress = false;
                var currentPlaying = 0;            
                var total = 0;
                var isIE;            
                var jPlayer = null;            
    
                var talkNonIE = function() {
                    var url = ttsUrl + '?tl=' + lang + '&q=' + sentences[currentPlaying++];
                    jPlayer.jPlayer('setFile', url).jPlayer('play').jPlayer('onSoundComplete', onSoundComplete);
                };
           
                var talkIE = function() {
                    if (currentPlaying < total) {
                        var re = /w+/g;
                        var words = sentences[currentPlaying].match(re);        
                       
                        var url = ttsUrl + '?tl=' + lang + '&q=' + sentences[currentPlaying++];    
                        setTimeout(talkIE, words.length * msPerWord);
                       
                        if (jPlayer != null) {
                            jPlayer.remove();
                        }
                       
                        jPlayer = $('<embed>', {src: url, hidden: true}).appendTo($(elem));
                    } else {
                        inProgress = false;
                        plugin.trigger('onComplete', []);
                    }
                };
           
                var onSoundComplete = function() {
                    if (currentPlaying < total) {
                        talkNonIE();                    
                    } else {
                        inProgress = false;
                        plugin.trigger('onComplete', []);
                    }
                };            
    
                return this.each(function() {
                    plugin = $(this);
                    elem = $(options.elem);
    
                    if ($.browser.msie) {
                        isIE = true;                    
                    } else {
                        isIE = false;
                        jPlayer = $(elem);                  
                        jPlayer.jPlayer(options.jPlayer);
                    }                
                   
                    lang = options.lang;                
                    msPerWord = options.msPerWord;
                }).bind('playing', function(e, lines) {
                    currentPlaying = 0;
                    sentences = lines;
                    total = sentences.length;
                    if (isIE) {
                        talkIE();
                    } else {
                        talkNonIE();
                    }                
                }).bind('pause', function() {
                }).bind('stop', function() {                
                }).bind('resume', function() {                
                });  
            },
            play: function(sentences) {
                return this.trigger('playing', [sentences]);
            },
            pause: function() {
                return this.trigger('pause');
            },
            abort: function() {
                return this.trigger('abort');
            },
            resume: function() {
                return this.trigger('resume');
            }
        });
    })(jQuery);
    
    
    
  • 相关阅读:
    Educational Codeforces Round 86 (Rated for Div. 2) D. Multiple Testcases
    Educational Codeforces Round 86 (Rated for Div. 2) C. Yet Another Counting Problem
    HDU
    HDU
    HDU
    HDU
    Good Bye 2019 C. Make Good (异或的使用)
    Educational Codeforces Round 78 (Rated for Div. 2) C. Berry Jam
    codeforces 909C. Python Indentation
    codeforces1054 C. Candies Distribution
  • 原文地址:https://www.cnblogs.com/geovindu/p/4179666.html
Copyright © 2020-2023  润新知