sparkling-media

用于从 Lynx/JS 中选择、上传、下载和保存媒体文件的辅助 API。

安装

npm install sparkling-media

导出

chooseMedia(params, callback)

从相册或相机中选择图片或视频。

  • 请求
参数类型必填默认值描述
mediaTypes('image' | 'video')[]-要选择的媒体类型
sourceType'album' | 'camera'-来源:相册或相机
maxCountnumber1最大选择文件数
cameraType'front' | 'back'-sourceType'camera' 时的相机类型(camera 时必填)
compressImagebooleanfalse是否压缩图片
saveToPhotoAlbumbooleanfalse将拍摄的媒体保存到相册
needBase64Databooleanfalse返回 base64 编码数据
compressOption0 | 1 | 2 | 3 | 400-默认,1-全部,2-仅 base64,3-仅图片,4-不压缩
compressWidthnumber0目标压缩宽度
compressHeightnumber0目标压缩高度
compressQualitynumber100压缩质量(0-100)
  • 响应{ code: number; msg: string; data?: { tempFiles: TempFile[] } }

TempFile

字段类型描述
tempFilePathstring临时文件路径(相对)
tempFileAbsolutePathstring绝对文件路径
sizenumber文件大小(字节)
mediaType'image' | 'video'媒体类型
mimeTypestring文件的 MIME 类型
base64DatastringBase64 数据(当 needBase64Datatrue 时)

示例:

import { chooseMedia } from 'sparkling-media';

chooseMedia(
  {
    mediaTypes: ['image'],
    sourceType: 'album',
    maxCount: 3,
  },
  (res) => {
    if (res.code === 0) {
      console.log(res.data?.tempFiles);
    }
  }
);

uploadFile(params, callback)

上传文件到远程服务器。

  • 请求
参数类型必填描述
urlstring上传接口 URL
filePathstring要上传的本地文件路径
paramsobject附加参数
headerobjectHTTP 请求头
  • 响应{ code: number; msg: string; data?: { url?: string; uri?: string; response?: object; clientCode?: number } }

示例:

import { uploadFile } from 'sparkling-media';

uploadFile(
  {
    url: 'https://example.com/upload',
    filePath: '/tmp/photo.jpg',
    header: { Authorization: 'Bearer token' },
  },
  (res) => {
    console.log(res.code, res.data?.response);
  }
);

uploadImage(params, callback)

上传图片到远程服务器。

  • 请求
参数类型必填描述
urlstring上传接口 URL
filePathstring要上传的本地图片文件路径
paramsobject附加参数
headerobjectHTTP 请求头
  • 响应{ code: number; msg: string; data?: { url?: string; uri?: string; response?: object; clientCode?: number } }

示例:

import { uploadImage } from 'sparkling-media';

uploadImage(
  {
    url: 'https://example.com/upload',
    filePath: '/tmp/photo.jpg',
    header: { Authorization: 'Bearer token' },
  },
  (res) => {
    console.log(res.code, res.data?.url);
  }
);

downloadFile(params, callback)

从 URL 下载文件。

  • 请求
参数类型必填默认值描述
urlstring-下载 URL
extensionstring-文件扩展名(如 'png''jpg'
paramsobject-附加参数
headerobject-HTTP 请求头
saveToAlbum'image' | 'video'-以图片或视频形式保存到相册
needCommonParamsbooleantrue为请求添加公共参数
timeoutIntervalnumber-请求超时时间(秒)
  • 响应{ code: number; msg: string; data?: { httpCode: number; clientCode: number; header: object; filePath: string } }

示例:

import { downloadFile } from 'sparkling-media';

downloadFile(
  {
    url: 'https://example.com/image.png',
    extension: 'png',
    saveToAlbum: 'image',
  },
  (res) => {
    if (res.code === 0) {
      console.log('已保存到:', res.data?.filePath);
    }
  }
);

saveDataURL(params, callback)

将 base64 数据 URL 保存到设备。

  • 请求
参数类型必填描述
dataURLstringBase64 编码的数据 URL
filenamestring文件名(不含扩展名)
extensionstring文件扩展名(如 'png''jpg'
saveToAlbum'image' | 'video'以图片或视频形式保存到相册
  • 响应{ code: number; msg: string; data?: { filePath: string } }

示例:

import { saveDataURL } from 'sparkling-media';

saveDataURL(
  {
    dataURL: 'data:image/png;base64,iVBOR...',
    filename: 'screenshot',
    extension: 'png',
    saveToAlbum: 'image',
  },
  (res) => {
    if (res.code === 0) {
      console.log('已保存到:', res.data?.filePath);
    }
  }
);

原生方法名

此包调用以下方法:

  • media.chooseMedia
  • media.uploadFile
  • media.uploadImage
  • media.downloadFile
  • media.saveDataURL

你的宿主应用必须注册这些方法的原生实现。参阅 Sparkling Method SDK / iOS