cordova-plugin-video
v1.0.1
Published
High performance video capture plugin for Cordova using CameraX
Maintainers
Readme
cordova-plugin-video
A professional, high-performance video capture plugin for Cordova (Android), utilizing the modern Android CameraX API.
Overview
Unlike standard video capture plugins that launch the device's default camera app or struggle with memory constraints when handling large files over the Cordova Bridge, cordova-plugin-video is built from the ground up for maximum performance and stability.
By utilizing Google's CameraX API, the video stream is hardware-accelerated and written directly to the device's local storage. The JavaScript layer only receives the file path (file://), completely eliminating Out-Of-Memory (OOM) errors even when recording massive, hour-long video files.
Features
- High Performance: Hardware-accelerated recording via Android CameraX.
- Zero-Memory-Bloat: Streams directly to disk; bypasses the Cordova JS bridge for heavy data.
- Native Fullscreen UI: Provides a clean, built-in native camera view for recording.
- Complete File Management: Native methods to list, delete, and manage captured videos.
- Native Playback: Launch recorded videos directly in the user's default media player.
- Type-Safe: Includes TypeScript definitions out of the box.
Supported Platforms
- Android (API Level 21+)
- Cordova Android 10.0.0+
Installation
cordova plugin add cordova-plugin-videoAPI Reference
The plugin exposes a global HighPerfVideo object.
HighPerfVideo.capture(successCallback, errorCallback)
Opens the native camera interface to record a video.
HighPerfVideo.capture(
function(filePath) {
console.log("Success! Video saved at: " + filePath);
},
function(error) {
console.error("Capture failed: " + error);
}
);HighPerfVideo.list(successCallback, errorCallback)
Lists all videos captured by the plugin.
HighPerfVideo.list(
function(videos) {
// videos is an array of objects
videos.forEach(video => {
console.log(video.name); // e.g. "20260709_120000.mp4"
console.log(video.path); // Absolute file path
console.log(video.size); // Size in bytes
console.log(video.date); // Last modified timestamp
});
},
function(error) {
console.error("Failed to list videos: " + error);
}
);HighPerfVideo.delete(fileName, successCallback, errorCallback)
Deletes a specific video file.
HighPerfVideo.delete(
"20260709_120000.mp4",
function() {
console.log("Video deleted successfully.");
},
function(error) {
console.error("Deletion failed: " + error);
}
);HighPerfVideo.play(fileName, successCallback, errorCallback)
Plays a specific video using the device's default native video player.
HighPerfVideo.play(
"20260709_120000.mp4",
function() {
console.log("Video player launched.");
},
function(error) {
console.error("Failed to launch player: " + error);
}
);Security & Permissions
This plugin automatically handles requesting the following Android permissions at runtime:
CAMERARECORD_AUDIO
Video files are saved securely in the app's external files directory (Context.getExternalFilesDir), meaning they do not require dangerous broad storage permissions (WRITE_EXTERNAL_STORAGE) on modern Android versions (Android 10+).
License
MIT License
