|
138 | 138 | } |
139 | 139 |
|
140 | 140 | function setSource(id, src) { |
141 | | - var frame = document.getElementById(id), ext = ".mp4"; |
| 141 | + var frame = document.getElementById(id), ext = '.mp4'; |
142 | 142 | if (frame.firstChild) frame.firstChild.src = "#"; |
143 | 143 | if (src.indexOf(ext, src.length - ext.length) > -1) |
144 | 144 | frame.innerHTML = '<video id="player" width="100%" autoplay controls> \ |
|
151 | 151 | while (frame.firstChild) frame.removeChild(frame.firstChild); |
152 | 152 | } |
153 | 153 |
|
| 154 | + function toggleRecord(btn) { |
| 155 | + if (!btn) return; |
| 156 | + |
| 157 | + var req = new XMLHttpRequest(), act = ''; |
| 158 | + req.onreadystatechange = function() { |
| 159 | + if (this.readyState != 4 || this.status != 200) return; |
| 160 | + var dec = JSON.parse(req.responseText); |
| 161 | + for (var key in dec) { |
| 162 | + if (!dec.hasOwnProperty(key)) continue; |
| 163 | + if (key != 'recording') continue; |
| 164 | + if (dec[key] == true) { |
| 165 | + btn.innerHTML = 'Stop'; |
| 166 | + btn.className = 'btn error'; |
| 167 | + } else { |
| 168 | + btn.innerHTML = 'Start'; |
| 169 | + btn.className = 'btn primary'; |
| 170 | + } |
| 171 | + } |
| 172 | + } |
| 173 | + switch (btn.innerHTML) { |
| 174 | + case 'Start': act = '?start'; break; |
| 175 | + case 'Stop': act = '?stop'; break; |
| 176 | + } |
| 177 | + req.open('GET', '/api/record' + act); |
| 178 | + req.send(); |
| 179 | + } |
| 180 | + |
154 | 181 | function every5Sec() { |
155 | 182 | apiRead('status'); |
156 | 183 | } |
|
162 | 189 | apiRead('mjpeg'); |
163 | 190 | apiRead('night'); |
164 | 191 | apiRead('record'); |
| 192 | + toggleRecord(document.getElementById('record_state')); |
165 | 193 | apiRead('time'); |
166 | 194 |
|
167 | 195 | duplicateRows('osd', 10); |
@@ -245,6 +273,7 @@ <h2 class="unl">Media</h2> |
245 | 273 | <td><input type="number" id="record_segment_size"></td> |
246 | 274 | </tr> |
247 | 275 | </table> |
| 276 | + <button id="record_state" class="btn" onclick="toggleRecord(this)"></button> |
248 | 277 | <a href="javascript:apiApply('record')" class="btn right">Apply</a> |
249 | 278 | </fieldset> |
250 | 279 | </div> |
|
0 commit comments