App-Android(使用App+htnl5框架,解决消息推送兼容SignalR问题)
loulijun2021
2022-09-20 eb23a7c7faefe86330a88f9118b8211f6b86e75b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8"/>
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
        <meta name="HandheldFriendly" content="true"/>
        <meta name="MobileOptimized" content="320"/>
        <title>自定义语音识别</title>
        <script type="text/javascript">
var text='';
document.addEventListener('plusready', function(){
    initDom();
    // 监听语音识别事件
    plus.speech.addEventListener('start', function(){
        console.log('Event: start');
        text=null;
        result.value='识别中';
        partial.innerText='';
    }, false);
    plus.speech.addEventListener('volumeChange', function(e){
        volume.style.width = 100*e.volume+'px';
    }, false);
    plus.speech.addEventListener('recognizing', function(e){
        console.log('Event: recognizing');
        partial.innerText = e.partialResult;
    }, false);
    plus.speech.addEventListener('recognition', function(e){
        console.log('Event: recognition');
        text?(text+='\n'):text='';
        text+=e.result;
        result.value=text;
        partial.innerText = e.result;
    }, false);
    plus.speech.addEventListener('end', function(){
        console.log('Event: end');
        if(!text||text==''){
            plus.nativeUI.toast('没有识别到内容');
        }
        result.value=text;
    }, false);
}, false);
 
var result=null,recogniz=null,partial=null,volume=null;
function initDom(){
  result = document.getElementById('result');
    recogniz = document.getElementById('recogniz');
    partial = document.getElementById('partial');
   volume = document.getElementById('volume');
    done = document.getElementById('done');
    done.addEventListener('touchstart', doStart, false);
    done.addEventListener('touchend', doEnd, false);
}
function doStart(){
    plus.speech.startRecognize({
        engine: 'baidu',
        lang: 'zh-cn',
        'userInterface': false,
        'continue': true
    });
    recogniz.style.visibility = 'visible';
}
function doEnd(){
    plus.speech.stopRecognize();
    recogniz.style.visibility = 'hidden';
}
 
function startRecognizeSilent(){
    var options={
        userInterface: false
    };
    plus.speech.startRecognize(options, function(s){
       console.log('success: '+s); 
    }, function(e){
        console.log('error: '+JSON.stringify(e));
    });
}
        </script>
        <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8"/>
        <style type="text/css">
.text {
    width: 80%;
    height: 50px;
    border: #00CCCC 1px solid;
    color: #CCCCCC;
}
.recogniz {
    width: 200px;
    height: 100px;
    padding: 12px;
    margin: auto;
    background-color: rgba(0,0,0,0.5);
    border-radius: 16px;
    visibility: hidden;
}
.partial {
    width: 100%;
    height: 40px;
    margin-top: 16px;
    font-size: 12px;
    color: #FFFFFF;
}
.volume {
    width: 10px;
    height: 6px;
    border-style:solid;
    display:inline-block;
    box-sizing:border-box;
    border-width:1px;
    border-color:#CCCCCC;
    border-radius: 50%;
    background-color: #00CC00;
}
        </style>
    </head>
    <body>
        <br/>
        <p class="des">
            设置userInterface属性值为false则不使用默认语音识别界面,此时可通过H5自定义语音识别界面。
        </p>
        <div style="color:#FF0000;font-weight:bold;text-align:center;">注意:仅百度语音识别支持自定义界面</div>
        <br/>
        <div style="width:100%;text-align:center;">
            <textarea id="result" class="text" placeholder="语音识别内容"></textarea>
        </div>
        <br/>
        <div style="width:100%;height:100px;text-align:center;">
            <div id="recogniz" class="recogniz">
                <div style="color: #0000CC;">...倾听中...</div>
                <div id="partial" class="partial">...</div>
                <div id="volume" class="volume"></div>
            </div>
        </div>
        <br/>
        <div style="position:absolute;bottom:50px;width:100%;">
            <div id="done" class="button" readonly>按下开始&amp;松开结束</div>
        </div>
    </body>
</html>