| <!doctype html> |
| <html> |
| <head> |
| <title>MediaRecorder start timeSlice option</title> |
| <link rel="help" href="https://w3c.github.io/mediacapture-record/MediaRecorder.html#mediarecorder"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <canvas id="canvas" width="200" height="200"> |
| </canvas> |
| <script> |
| promise_test(async t => { |
| const video = await navigator.mediaDevices.getUserMedia({ audio : true, video : true }); |
| const recorder = new MediaRecorder(video); |
| |
| assert_equals(recorder.stream, video); |
| |
| let promise = new Promise(resolve => recorder.ondataavailable = resolve); |
| recorder.start(100); |
| await promise; |
| |
| promise = new Promise(resolve => recorder.ondataavailable = resolve); |
| await promise; |
| }, 'Make sure that MediaRecorder timeSlice triggers regular ondataavailable events'); |
| |
| promise_test(async t => { |
| const video = await navigator.mediaDevices.getUserMedia({ audio : true, video : true }); |
| const recorder = new MediaRecorder(video); |
| |
| let isStarted = false; |
| let promise = new Promise(resolve => recorder.onstart = () => { |
| isStarted = true; |
| resolve(); |
| }); |
| // We cover the case of invalid ignored timeSlice value by passing -1 here. |
| recorder.start(-1); |
| assert_false(isStarted); |
| |
| return promise; |
| }, 'Make sure that MediaRecorder fires onstart on successful start call'); |
| </script> |
| </body> |
| </html> |