蓝夜精灵
蓝夜精灵
  • 发布:2017-01-05 22:30
  • 更新:2019-12-13 17:52
  • 阅读:2604

请问Native 如何传递一个类作为参数呢 判断语音合成完毕

分类:Native.js

java代码


        mTts.startSpeaking("需要合成的文本文字", new MySynthesizerListener()) ;  

//下面是参数类  
    class MySynthesizerListener implements SynthesizerListener {  

        @Override  
        public void onSpeakBegin() {  
            showTip(" 开始播放 ");  
        }  

        @Override  
        public void onSpeakPaused() {  
            showTip(" 暂停播放 ");  
        }  

        @Override  
        public void onSpeakResumed() {  
            showTip(" 继续播放 ");  
        }  

        @Override  
        public void onBufferProgress(int percent, int beginPos, int endPos ,  
                                     String info) {  
            // 合成进度  
        }  

        @Override  
        public void onSpeakProgress(int percent, int beginPos, int endPos) {  
            // 播放进度  
        }  

        @Override  
        public void onCompleted(SpeechError error) {  
            if (error == null) {  
                showTip("播放完成 ");  
            } else if (error != null ) {  
                showTip(error.getPlainDescription( true));  
            }  
        }  

        @Override  
        public void onEvent(int eventType, int arg1 , int arg2, Bundle obj) {  
            // 以下代码用于获取与云端的会话 id,当业务出错时将会话 id提供给技术支持人员,可用于查询会话日志,定位出错原因  
            // 若使用本地能力,会话 id为null  
            //if (SpeechEvent.EVENT_SESSION_ID == eventType) {  
            //     String sid = obj.getString(SpeechEvent.KEY_EVENT_SESSION_ID);  
            //     Log.d(TAG, "session id ="   sid);  
            //}  
        }  
    }  

Native.js
h5+给的示例
play.startSpeaking('中国是中国共产党打下来的,我就知道,这段话不会被查水表的 !',null);
这里的第二个参数应该怎么写呢 才能响应 回调函数 开始播放 结束播放

我改成如下

        aaa = function(){  
            this.onSpeakBegin = function (){  
                alert("开始播放");  

            }  

            this.onCompleted = function (  error) {  
                    alert("wanbi");   
                }    
        }  

        play.startSpeaking('我就知道你是小母猪 !',aaa);  
      并没什么效果  

这样也没效果

            play.startSpeaking('中国 !',{  
                                            "onSpeakBegin":function(   ){  

                                                console.log( "开始播放" );  
                                            },  
                                            "onSpeakPaused":function( e ){  

                                                console.log( "暂停播放" );  
                                            },  
                                            "onSpeakResumed":function( e ){  

                                                console.log( "继续播放" );  
                                            },  
                                            "onBufferProgress":function( e ){  

                                            },  
                                            "onSpeakProgress":function( e ){  

                                            },  
                                            "onCompleted":function( e ){  

                                                console.log( "播放完成" );  
                                            }  
                                        }  
                            );  
2017-01-05 22:30 负责人:无 分享
已邀请:
蓝夜精灵

蓝夜精灵 (作者)

 var receiver;  

receiver = plus.android.implements('com.iflytek.cloud.SynthesizerListener',{  

    onSpeakBegin : function(){  

        console.log("开始阅读");  

    }  
    ,  
    onSpeakPaused : function() {  
            console.log(" 暂停播放 ");  
        }  
    ,  
        onSpeakResumed : function(){  

        console.log("继续播放");  

    }  
    ,  
    onBufferProgress:function(  percent,   beginPos,   endPos ,   info)  
    {  
        console.log("合成进度");  

    }  
    ,  
    onSpeakProgress : function(    percent,   beginPos,   endPos ) {  
            // 合成进度  
            console.log("播放进度");  
       }  
    ,  
    onCompleted : function(error){  
        //alert("aa");  
        console.log("播放完毕");  
    }  

});  

var main = plus.android.runtimeMainActivity();  

var SpeechUtility = plus.android.importClass('com.iflytek.cloud.SpeechUtility');  

SpeechUtility.createUtility(main,"appid=你的appid");  

var SynthesizerPlayer = plus.android.importClass('com.iflytek.cloud.SpeechSynthesizer');  

var play = SynthesizerPlayer.createSynthesizer(main, null);  

play.startSpeaking('中国是中国共产党打下来的,我就知道,这段话不会被查水表的',receiver);   

已经搞定

  • 孟泽伟

    安卓上闪退

    2017-04-26 17:35

  • 3***@qq.com

    安卓上闪退

    2017-05-16 11:20

  • 3***@qq.com

    @747810741@qq.com:老铁 解决没?

    2017-05-16 11:20

3***@qq.com

3***@qq.com

var receiver;  

                receiver = plus.android.implements('com.iflytek.cloud.SynthesizerListener', {  
                    onEvent: function(arg0, arg1, arg2, arg3) {  
                        console.log("onEvent");  
                    },  
                    onSpeakBegin: function() {  

                        console.log("开始阅读");  

                    },  
                    onSpeakPaused: function() {  
                        console.log(" 暂停播放 ");  
                    },  
                    onSpeakResumed: function() {  

                        console.log("继续播放");  

                    },  
                    onBufferProgress: function(percent, beginPos, endPos, info) {  
                        console.log("合成进度" + percent);  

                    },  
                    onSpeakProgress: function(percent, beginPos, endPos) {  
                        // 合成进度  
                        console.log("播放进度" + percent);  
                    },  
                    onCompleted: function(error) {  
                        //alert("aa");  
                        console.log("播放完毕");  
                    }  
                });  

                var main = plus.android.runtimeMainActivity();  

                var SpeechUtility = plus.android.importClass('com.iflytek.cloud.SpeechUtility');  

                SpeechUtility.createUtility(main, "appid=你的appid");  

                var SynthesizerPlayer = plus.android.importClass('com.iflytek.cloud.SpeechSynthesizer');  

                var play = SynthesizerPlayer.createSynthesizer(main, null);  

                play.startSpeaking('中国是中国共产党打下来的,我就知道,这段话不会被查水表的', receiver);  

加个OnEvent 事件 防止闪退

移动达人

移动达人

不错,留个脚印。以后可以用

5***@qq.com

5***@qq.com

怎么解决在安卓8以上无法听清识别结果的语音啊 ???

该问题目前已经被锁定, 无法添加新回复