| Crates.io | tauri-plugin-camera |
| lib.rs | tauri-plugin-camera |
| version | 0.1.4 |
| created_at | 2025-05-10 13:57:49.393115+00 |
| updated_at | 2025-06-23 17:38:34.869946+00 |
| description | A Tauri plugin for accessing the camera on Android devices. |
| homepage | |
| repository | https://github.com/charlesschaefer/tauri-plugin-camera |
| max_upload_size | |
| id | 1668396 |
| size | 185,129 |
This project is a Tauri plugin that allows Tauri applications to access the Android camera for taking pictures and recording videos. It exposes APIs in both Rust and TypeScript, enabling seamless integration with Tauri apps.
See an example in the folder examples/camera-app.
android/src: Contains the Android-specific implementation of the camera plugin.
CameraPlugin.kt: Entry point for the Tauri plugin on Android.CameraHandler.kt: Manages camera operations and file references.guest-js/index.ts: TypeScript APIs for interacting with the camera plugin.
Install it adding both the cargo and the javascript versions as dependencies:
cargo add tauri-plugin-camera
npm i --save tauri-plugin-camera
After that, initialize the plugin on your tauri's run() function (usually lib.rs or main.rs):
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
// add the following line:
.plugin(tauri_plugin_camera::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
import { takePicture, recordVideo } from "tauri-plugin-camera";
takePicture().then(pictureResponse => {
// imageData is the base64 encoded image
const {imageData, width, height} = pictureResponse;
});
recordVideo().then(videoResponse => {
// videoData is the base64 encoded video
const {videoData, width, height} = videoResponse;
})
use tauri_plugin_camera::{CameraExt, TakePictureResponse};
#[tauri::command]
fn take_picture(app: AppHandle) -> TakePictureResponse {
// Call the camera plugin to take a picture
let response = app.camera().take_picture().unwrap();
dbg!("Response: {:?}", &response);
// response.imageData is the base64 encoded image
response
}
To build the javascript files, enter the project root and type:
rollup -c