pCameraH5 v2.0:轻量级 H5 相机插件全新升级,支持拍照、录像与自定义水印

在现代 Web 应用开发中,用户对多媒体功能的需求日益增长,尤其是在移动端应用中,相机功能已成为许多产品的核心需求之一。但是原生 API 调用复杂,兼容性处理繁琐,水印功能需要手动 canvas 绘制,性能堪忧。为了满足这一需求,我们推出了轻量级 H5 相机插件 pCameraH5 的全新 v2.0 版本。

在线演示:pbstar.github.io/p-camera-h5

GitHub 仓库:github.com/pbstar/p-ca...

为什么选择 pCameraH5?

pCameraH5 是一款专为现代浏览器设计的轻量级 H5 相机插件,它具有以下核心特性:

  1. 即时捕获:支持拍照和录像功能,满足用户多样化的媒体采集需求。
  2. 自定义水印:支持文字和图片水印,可自定义位置、颜色、字体大小等属性。
  3. 无缝集成:极简的 API 设计,不依赖任何外部库,轻松集成到现有项目中。
  4. 跨平台兼容:完整适配桌面端与移动端浏览器,提供一致的用户体验。

相比 v1.0 版本,pCameraH5 v2.0 在功能和性能上都有显著提升:

  1. 重构核心代码:使包体积从 14kb 减少到 7kb,更轻量更稳定。
  2. 增强水印功能:支持更灵活的水印配置,包括文字水印的字体大小、颜色等自定义选项。
  3. 移除内置按钮:移除了 v1.0 版本中的内置按钮,用户由 api 完成交互,更灵活。
  4. 优化性能表现:改进了视频流处理逻辑,提升了渲染效率。
  5. 完善错误处理:增强了错误处理机制,提供更友好的错误提示。

快速开始

安装

通过 npm 安装:

bash 复制代码
npm install p-camera-h5 --save

或者通过 CDN 引入:

html 复制代码
<script src="https://unpkg.com/p-camera-h5@latest/dist/p-camera-h5.umd.js"></script>

基本使用

在 HTML 中创建一个容器元素:

html 复制代码
<div id="el" style="width: 300px; height: 500px"></div>

在 JavaScript 中初始化插件:

javascript 复制代码
import pCameraH5 from "p-camera-h5";

const camera = new pCameraH5({
  el: document.querySelector("#el"), // 容器选择器
  watermark: [
    {
      x: 10,
      y: 10,
      text: "p-camera-h5",
    },
  ],
});

API 方法

pCameraH5 提供了简洁的 API 接口:

  • capture():拍摄照片,返回 Promise
  • startRecording():开始录像
  • stopRecording():停止录像,返回 Promise
  • destroy():销毁实例(释放资源)

示例代码:

javascript 复制代码
// 拍照
const captureBtn = document.querySelector("#capture");
captureBtn.addEventListener("click", () => {
  camera.capture().then((file) => {
    // 处理照片文件
    console.log(file);
  });
});

// 录像
const recordBtn = document.querySelector("#record");
recordBtn.addEventListener("click", () => {
  if (recordBtn.textContent === "录像") {
    camera.startRecording();
    // 更新按钮状态
  } else {
    camera.stopRecording().then((file) => {
      // 处理视频文件
      console.log(file);
    });
  }
});

水印配置详解

pCameraH5 支持灵活的水印配置,可以同时添加多个文字或图片水印:

javascript 复制代码
const camera = new pCameraH5({
  el: document.querySelector("#el"),
  isMirror: true,
  watermark: [
    {
      x: 10,
      y: 28,
      text: {
        text: "📷 pCameraH5",
        fontSize: 18,
        color: "rgba(255, 255, 255, 0.5)",
      },
    },
    {
      x: 10,
      y: 58,
      text: "v2.0.0",
    },
    {
      x: 100,
      y: 100,
      img: {
        url: "watermark.png",
        width: 100,
        height: 100,
      },
    },
  ],
});

重要说明

  1. 安全协议:需在 HTTPS 环境或 localhost 下运行(浏览器安全策略要求)
  2. 权限管理:首次使用需用户授权摄像头和麦克风权限
  3. 格式说明:录像实际输出为 WEBM 格式,MP4 下载通过自动转换实现

结语

pCameraH5 v2.0 版本在保持轻量级特性的基础上,进一步增强了功能和性能,为 Web 应用提供了更优质的相机体验。无论是在桌面端还是移动端,都能为用户提供流畅的拍照和录像功能。

如果你正在寻找一款简单易用、功能强大的 H5 相机插件,不妨试试 pCameraH5。欢迎访问我们的GitHub 仓库了解更多详情,也欢迎通过Issues提交建议或贡献代码!

相关推荐
牛奶8 分钟前
浏览器藏了这么多神器,你居然不知道?
前端·chrome·api
WebInfra13 分钟前
Rspack 2.0 正式发布!
前端·javascript·前端框架
极速蜗牛20 分钟前
Cursor最近变傻了?
前端
码字小学妹30 分钟前
Claude Opus 4.7 接入指南(2026):国内配置 + xhigh 推理 + 成本计算
前端
小赵同学WoW32 分钟前
插槽【vue2】与 【vue3】对比
前端
代码随想录32 分钟前
Agent大厂面试题汇总:ReAct、Function Calling、MCP、RAG高频问题
前端·react.js·前端框架
前端那点事32 分钟前
Vue响应式原理|从底层实现到面试考点,一文吃透(Vue2+Vue3全解析)
前端·vue.js
walking95734 分钟前
Vite 打包优化终极指南:从 30MB 到 800KB 的性能飞跃
前端·vue.js·vite
Highcharts.js34 分钟前
在 React 中使用 useState 和 @highcharts/react 构建动态图表
开发语言·前端·javascript·react.js·信息可视化·前端框架·highcharts
梓言35 分钟前
解决 Element Plus 中 Tooltip 样式影响全局菜单(Menu)及宽度控制失效的完美方案
前端·css·element