Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stop Video Capture programmatically in WinJS

I have a winJS where I am recording video. While I can make it work, I want to stop the camera recording automatically after 15 seconds. Currently the cam records more than 15 secs then trims out 15 secs from the video. I want the camera turned off/stop recording after 15secs automatically. I have the following code:

function captureVideo() {
    WinJS.log && WinJS.log("", "sample", "status");

    // Using Windows.Media.Capture.CameraCaptureUI API to capture a video
    var dialog = new Windows.Media.Capture.CameraCaptureUI();

    dialog.videoSettings.allowTrimming = true;
    dialog.videoSettings.format = Windows.Media.Capture.CameraCaptureUIVideoFormat.mp4;
    dialog.videoSettings.maxDurationInSeconds = document.getElementById("txtDuration").value;
    dialog.captureFileAsync(Windows.Media.Capture.CameraCaptureUIMode.video).done(function (file) {

        if (file) {

            var videoBlobUrl = URL.createObjectURL(file, {oneTimeOnly: true});
            document.getElementById("capturedVideo").src = videoBlobUrl;
            localSettings.values[videoKey] = file.path;

        } else {
            WinJS.log && WinJS.log("No video captured.", "sample", "status");
        }
    }, function (err) {
        WinJS.log && WinJS.log(err, "sample", "error");
    });
}
like image 650
rahul Avatar asked Dec 07 '25 06:12

rahul


1 Answers

The CameraCaptureUI that you are using sacrifices power for the ease of use and standard interface. If you need more power such as the ability to start and stop the recording, you should use the MediaCapture object. See my mediacap demo in codeSHOW. In it I am using the MediaCapture for recording audio, but you can likely figure out how to record video instead and add your concept of timing.

like image 141
Jeremy Foster Avatar answered Dec 09 '25 05:12

Jeremy Foster



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!