1
1
<template >
2
- <b-button variant =" link" @click =" requestSessionTest()" ><img src =" /public/cast-icon.svg" /></b-button >
2
+ <div >
3
+ <b-button variant =" link" @click =" sendInitMessage" ><img src =" /public/cast-icon.svg" /></b-button >
4
+ <button @click =" sendInitMessage" >Send message</button >
5
+ </div >
3
6
</template >
4
7
5
8
<script >
6
9
import loadScript from ' load-script'
7
10
8
- var applicationID = ' C97D0419' ;
9
- var namespace = ' urn:x-cast:com.google.cast.sample.helloworld' ;
10
- var session = null ;
11
+ const applicationID = ' C97D0419' ;
12
+ const namespace = ' urn:x-cast:com.google.cast.sample.helloworld' ;
11
13
12
14
export default {
13
15
name: ' castButton' ,
14
16
data : function () {
15
17
return {
16
18
sendCastMessage: null ,
19
+
20
+ session: null ,
17
21
};
18
22
},
23
+ // mounted: function() {
24
+ // this.initializeCastApi();
25
+
26
+ // this.$watch("captioningOn", function(captioningOn) {
27
+ // },
19
28
methods: {
20
- requestSessionTest : function () {
21
- chrome .cast .requestSession (function (e ) {
22
- let session = e;
23
- session .sendMessage (namespace, {
24
- mutationType: ' RESTORE_SETTINGS' ,
25
- payload: {
26
- settings: this .$store .state .settings ,
27
- verstion: this .$store .state .version ,
28
- },
29
- },
30
- function () {
31
- console .log (' Message sent: ' );
32
- },
33
- function (e ){
34
- console .log (e)
35
- }
36
- );
37
- },
38
- function (e ){
39
- console .log (e)
40
- }
41
- );
29
+ initializeCastApi : function () {
30
+ console .log (this );
31
+ let self = this ;
32
+ let sessionRequest = new chrome.cast.SessionRequest (applicationID);
33
+ const onReceivedMessage = function (namespace , message ) {
34
+ console .log (' Received message:' );
35
+ console .log (namespace, message);
36
+ }
37
+
38
+ const sessionListener = function (e ) {
39
+ console .log (' New session ID:' + e .sessionId );
40
+ self .session = e;
41
+ self .session .addUpdateListener (sessionUpdateListener);
42
+ self .session .addMessageListener (namespace, onReceivedMessage);
43
+ };
44
+
45
+ const sessionUpdateListener = function sessionUpdateListener (isAlive ) {
46
+ var message = isAlive ? ' Session Updated' : ' Session Removed' ;
47
+ message += ' : ' + self .session .sessionId ;
48
+ console .log (message);
49
+ if (! isAlive) {
50
+ self .session = null ;
51
+ }
52
+ }
53
+
54
+ const receiverListener = function receiverListener (e ) {
55
+ if (e === ' available' ) {
56
+ console .log (' receiver found' );
57
+ }
58
+ else {
59
+ console .log (' receiver list empty' );
60
+ }
61
+ };
62
+
63
+ let apiConfig = new chrome.cast.ApiConfig (
64
+ sessionRequest,
65
+ sessionListener,
66
+ receiverListener);
67
+
68
+ chrome .cast .initialize (apiConfig, () => { console .log (' init success' )}, (e ) => { console .log (e); });
69
+ },
70
+ sendInitMessage : function () {
71
+ this .sendMessage ({
72
+ mutationType: ' RESTORE_SETTINGS' ,
73
+ payload: {
74
+ settings: this .$store .state .settings ,
75
+ verstion: this .$store .state .version ,
76
+ }
77
+ });
78
+ },
79
+ sendMessage : function (message ) {
80
+ if (this .session != null ) {
81
+ this .session .sendMessage (namespace, message, function () {
82
+ console .log (" success: " + JSON .stringify (message));
83
+ },
84
+ function (e ) {
85
+ console .log (" error: " );
86
+ console .log (e);
87
+ });
88
+ }
89
+ else {
90
+ let self = this ;
91
+ chrome .cast .requestSession (function (e ) {
92
+ self .session = e;
93
+ self .session .sendMessage (namespace, message,
94
+
95
+ function () {
96
+ console .log (" success: " + message);
97
+ }, function (e ) {
98
+ console .log (" error: " );
99
+ console .log (e);
100
+ })
101
+ }, function (e ) {
102
+ console .log (" error: " );
103
+ console .log (e);
104
+ });
105
+ }
106
+ },
107
+ },
108
+ computed: {
109
+ transcriptFinal () {
110
+ return this .$store .state .captioner .transcript .final ;
111
+ },
112
+ transcriptInterim () {
113
+ return this .$store .state .captioner .transcript .interim ;
42
114
},
43
115
},
44
116
mounted : function () {
117
+ let self = this ;
45
118
window [' __onGCastApiAvailable' ] = function (isAvailable ) {
46
119
if (isAvailable) {
47
- initializeCastApi ();
120
+ self . initializeCastApi ();
48
121
}
49
122
};
50
123
@@ -60,144 +133,42 @@ export default {
60
133
}
61
134
});
62
135
63
- /**
64
- * Call initialization for Cast
65
- */
66
- if (! chrome .cast || ! chrome .cast .isAvailable ) {
67
- setTimeout (initializeCastApi, 1000 );
68
- }
69
-
70
- /**
71
- * initialization
72
- */
73
- function initializeCastApi () {
74
- var sessionRequest = new chrome.cast.SessionRequest (applicationID);
75
- var apiConfig = new chrome.cast.ApiConfig (sessionRequest,
76
- sessionListener,
77
- receiverListener);
78
-
79
- chrome .cast .initialize (apiConfig, onInitSuccess, onError);
80
- }
81
-
82
- /**
83
- * initialization success callback
84
- */
85
- function onInitSuccess () {
86
- appendMessage (' onInitSuccess' );
87
- }
88
-
89
- /**
90
- * initialization error callback
91
- */
92
- function onError (message ) {
93
- appendMessage (' onError: ' + JSON .stringify (message));
94
- }
95
-
96
- /**
97
- * generic success callback
98
- */
99
- function onSuccess (message ) {
100
- appendMessage (' onSuccess: ' + message);
101
- }
102
-
103
- /**
104
- * callback on success for stopping app
105
- */
106
- function onStopAppSuccess () {
107
- appendMessage (' onStopAppSuccess' );
108
- }
109
-
110
- /**
111
- * session listener during initialization
112
- */
113
- function sessionListener (e ) {
114
- appendMessage (' New session ID:' + e .sessionId );
115
- session = e;
116
- session .addUpdateListener (sessionUpdateListener);
117
- session .addMessageListener (namespace, receiverMessage);
118
- }
119
-
120
- /**
121
- * listener for session updates
122
- */
123
- function sessionUpdateListener (isAlive ) {
124
- var message = isAlive ? ' Session Updated' : ' Session Removed' ;
125
- message += ' : ' + session .sessionId ;
126
- appendMessage (message);
127
- if (! isAlive) {
128
- session = null ;
129
- }
130
- }
131
-
132
- /**
133
- * utility function to log messages from the receiver
134
- * @param {string} namespace The namespace of the message
135
- * @param {string} message A message string
136
- */
137
- function receiverMessage (namespace , message ) {
138
- appendMessage (' receiverMessage: ' + namespace + ' , ' + message);
139
- }
140
-
141
- /**
142
- * receiver listener during initialization
143
- */
144
- function receiverListener (e ) {
145
- if (e === ' available' ) {
146
- appendMessage (' receiver found' );
147
- }
148
- else {
149
- appendMessage (' receiver list empty' );
136
+ this .$watch (" transcriptInterim" , function (transcriptInterim ) {
137
+ if (this .session ) {
138
+ this .sendMessage ({
139
+ mutationType: ' captioner/SET_TRANSCRIPT_INTERIM' ,
140
+ payload: {
141
+ transcriptInterim,
142
+ }
143
+ });
150
144
}
151
- }
152
-
153
- /**
154
- * stop app/session
155
- */
156
- function stopApp () {
157
- session .stop (onStopAppSuccess, onError);
158
- }
145
+ });
159
146
160
- /**
161
- * send a message to the receiver using the custom namespace
162
- * receiver CastMessageBus message handler will be invoked
163
- * @param {string} message A message string
164
- */
165
- this .sendCastMessage = function (message ) {
166
- if (session != null ) {
167
- session .sendMessage (namespace, message, onSuccess .bind (this , ' Message sent: ' + message),
168
- onError);
169
- }
170
- else {
171
- chrome .cast .requestSession (function (e ) {
172
- let session = e;
173
- session .sendMessage (namespace, message, onSuccess .bind (this , ' Message sent: ' +
174
- message), onError);
175
- }, onError);
147
+ this .$watch (" transcriptFinal" , function (transcriptFinal ) {
148
+ if (this .session ) {
149
+ this .sendMessage ({
150
+ mutationType: ' captioner/APPEND_TRANSCRIPT_FINAL' ,
151
+ payload: {
152
+ transcriptFinal,
153
+ }
154
+ });
176
155
}
177
- }
156
+ });
178
157
179
158
/**
180
- * append message to debug message window
181
- * @param {string} message A message string
159
+ * Call initialization for Cast
182
160
*/
183
- function appendMessage ( message ) {
184
- console . log (message );
185
- }
161
+ // if (!chrome.cast || !chrome.cast.isAvailable ) {
162
+ // setTimeout(initializeCastApi, 1000 );
163
+ // }
186
164
187
- /**
188
- * utility function to handle text typed in by user in the input field
189
- */
190
- function update () {
191
- this .sendCastMessage (document .getElementById (' input' ).value );
192
- }
193
165
194
166
/**
195
- * handler for the transcribed text from the speech input
196
- * @param {string} words A transcibed speech string
167
+ * stop app/session
197
168
*/
198
- function transcribe ( words ) {
199
- this . sendCastMessage (words );
200
- }
169
+ // function stopApp( ) {
170
+ // session.stop((e) => { console.log('App successfully stopped');}, (e) => { console.log(e); } );
171
+ // }
201
172
},
202
173
}
203
174
</script >
0 commit comments