@custom-react-hooks/use-media-devices

中文文档
1.5.1发布于 2024/08/18MITTypeScriptCommonJS零依赖近 30 天下载 2.7万

useMediaDevices 是一种反应钩子,它为访问和监测相机、麦克风和扬声器等媒体设备提供了方便的途径。 它不仅列出所有可用的媒体输入和输出设备,而且管理用户权限以获取详细数据

中文使用文档
文档目录11 节
  1. 特征
  2. 安装
  3. 单独安装此钩
  4. 安装完整钩套件
  5. 导入虎克
  6. 使用量
  7. API 参考
  8. 参数
  9. 返回对象
  10. 使用大小写
  11. 捐款

使用媒体设备钩

useMediaDevices 是一种反应钩子,它为访问和监测相机、麦克风和扬声器等媒体设备提供了方便的途径。 它不仅列出所有可用的媒体输入和输出设备,还管理用户权限以获取详细设备信息.

特征

  • 设备编号: 假设所有可用的媒体设备, 包含标签、 类型和ID等细节.
  • 可选权限处理:可选地提示用户访问媒体设备获取全部设备信息.
  • 装入状态: 提供装入状态,表示取回介质设备的过程.
  • 处理错误: 如果无法访问或无法获得媒体设备,则提供全面错误处理.
  • 服务器- Side 渲染( SSR) 兼容性: 被设计在服务器侧渲染环境中安全地执行,优雅地处理没有浏览器特定的API.

安装

单独安装此钩

npm install @custom-react-hooks/use-media-devices

或者说

yarn add @custom-react-hooks/use-media-devices

安装完整钩套件

npm install @custom-react-hooks/all

或者说

yarn add @custom-react-hooks/all

导入虎克

这个 useMediaDevices 钩必须使用下列命名的导入方式导入:

已命名的导入 :

import { useMediaDevices } from '@custom-react-hooks/use-media-devices';

这种方法确保了钩子无缝地融入到您的项目中,在您如何使用我们的包时保持一致性和可预测性.

使用量

import React from 'react';
import { useMediaDevices } from '@custom-react-hooks/all';

const MediaDevicesComponent = () => {
  const { devices, isLoading, error } = useMediaDevices(false);

  if (isLoading) {
    return <div>Loading devices...</div>;
  }

  if (error) {
    return <div>Error: {error}</div>;
  }

  return (
    <div className="media-devices">
      <h2>Available Media Devices</h2>
      {devices.length === 0 ? (
        <div>No devices found.</div>
      ) : (
        <ul>
          {devices.map((device) => (
            <li key={device.id}>
              <strong>{device.kind}:</strong> {device.label}
            </li>
          ))}
        </ul>
      )}
    </div>
  );
};

export default MediaDevicesComponent;

在这个例子中, useMediaDevices(true) 用于请求用户许可并列出所有可用的媒体设备.

API 参考

参数

  • requestPermission (可选,默认=假): 一个布尔参数,在设定为真实时,会促使用户获得访问相机和麦克风等媒体设备的许可. 如果错误, 钩子将只列出可用的设备而不请求访问 .

返回对象

  • devices: 数组 MediaDevice 对象,每个代表可用的介质设备。 每个 MediaDevice 对象包含以下属性:
    • id: 代表设备唯一标识符的字符串.
    • kind:表示设备类型的字符串(如"视频输入","音频输入","音频输出"等).
    • label: 代表设备标签的字符串, 如果标签不可用, 或“ 未知设备 ” .
  • isLoading:一个布尔表示钩子是否正在装入介质设备列表中.
  • error: 如果在获取设备列表时发生错误, 表示错误消息的字符串, 或 null 如果没有出错.

使用大小写

  • 设备选择:让用户从可用的输入/输出设备中选择用于媒体捕获.
  • 特性无障碍:检查视频通话等功能是否有媒体设备可用.
  • 动态设备更新: 当新设备连接或断开时更新 UI.
  • 权限管理: 管理访问媒体设备的用户权限.

捐款

我们欢迎为加强 useMediaDevices。对于错误报告或特性建议,请打开问题或向我们的仓库提交拉动请求.

版本与发布记录

@custom-react-hooks/use-media-devices 共发布 8 个版本,首次发布于 2023/12/02;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.5.1latest2024/08/182 年前
1.5.02024/08/182 年前
1.4.192023/12/092 年前
1.4.182023/12/082 年前
1.4.162023/12/072 年前
1.4.152023/12/022 年前

关于 @custom-react-hooks/use-media-devices 的常见问题

@custom-react-hooks/use-media-devices 是什么?

useMediaDevices 是一种反应钩子,它为访问和监测相机、麦克风和扬声器等媒体设备提供了方便的途径。 它不仅列出所有可用的媒体输入和输出设备,而且管理用户权限以获取详细数据

如何安装 @custom-react-hooks/use-media-devices?

在项目目录运行 npm install @custom-react-hooks/use-media-devices,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=16)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@custom-react-hooks/use-media-devices 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@custom-react-hooks/use-media-devices 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@custom-react-hooks/use-media-devices 可以商用吗?

@custom-react-hooks/use-media-devices 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@custom-react-hooks/use-media-devices 的下载量有多少?

根据 npm 官方下载统计,@custom-react-hooks/use-media-devices 在 2026/10/11 – 2026/11/09 这 30 天内被下载 26,674 次,日均约 889 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@custom-react-hooks/use-media-devices 还在维护吗?

最新版本 1.5.1 发布于 2024/08/18(2 年前);至今共发布 8 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/12/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。