@heybox/hb-sdk API Reference - v0.9.5
    正在准备搜索索引...

    函数 isMiniProgramMediaPickItem

    • 判断未知值是否为单个 media.pick 媒体项。

      参数

      • value: unknown

        来自 Host response、bridge result 或其他不可信边界的候选媒体项。

      返回 value is MediaPickItem

      字段组合满足 MediaPickItem 判别联合的最低结构时返回 true,并将 TypeScript 类型 收窄为图片或视频项;否则返回 false。

      以 type 为判别字段,两个分支都要求 mimeType 非空字符串、size 为非负安全整数、width / height 为正安全整数、previewUrl 非空字符串,且 file 是通过 isMiniProgramFileDescriptor 的 direct file ref(ref.kind === 'file' 且带非空 handleId), mode 必须固定为 'read'。图片分支只允许公共 key;视频分支额外要求非负安全整数的 durationMs, 并拒绝图片携带该字段。

      size 单位为字节,width / height 是考虑方向后的显示像素尺寸,durationMs 单位为毫秒。 该 guard 只校验结构与数值范围,不证明元数据与 file 实际内容一致、previewUrl 属于当前会话、 file 句柄由当前 Runtime 签发或仍在有效期内,也不检查 media 权限与 Host 能力。

      import { isMiniProgramMediaPickItem } from '@heybox/hb-sdk/protocol';

      const video = {
      type: 'video',
      mimeType: 'video/mp4',
      size: 5_242_880,
      width: 1280,
      height: 720,
      durationMs: 12_000,
      previewUrl: 'hb-media-preview://session/resource_2',
      file: { kind: 'file', name: 'clip.mp4', mode: 'read', ref: { kind: 'file', handleId: 'media_handle_2' } },
      };

      isMiniProgramMediaPickItem(video); // true
      isMiniProgramMediaPickItem({ ...video, type: 'image' }); // false:图片不允许 durationMs

      0.9.3