# wx.chooseMedia(Object object)

> 基础库 2.10.0 开始支持，低版本需做[兼容处理](1003706)。

> __以 [Promise 风格](/miniprogram/dev/framework/app-service/api.md#异步-API-返回-Promise) 调用__：支持
> 
> __小程序插件__：支持，需要小程序基础库版本不低于 [2.11.1](1003706)
> 
> __微信 Windows 版__：支持
> 
> __微信 Mac 版__：支持
> 
> __微信 鸿蒙 OS 版__：支持

## 功能描述

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

## 参数

### Object object


```json
[
  {
    "属性": "count",
    "类型": "number",
    "默认值": "9",
    "必填": "否",
    "说明": "最多可以选择的文件个数，基础库2.25.0前，最多可支持9个文件，2.25.0及以后最多可支持20个文件"
  },
  {
    "属性": "mediaType",
    "类型": "Array.<string>",
    "默认值": "['image', 'video']",
    "必填": "否",
    "说明": "文件类型",
    "子项": [
      {
        "合法值": "image",
        "说明": "只能拍摄图片或从相册选择图片"
      },
      {
        "合法值": "video",
        "说明": "只能拍摄视频或从相册选择视频"
      },
      {
        "合法值": "mix",
        "说明": "可同时选择图片和视频"
      }
    ]
  },
  {
    "属性": "sourceType",
    "类型": "Array.<string>",
    "默认值": "['album', 'camera']",
    "必填": "否",
    "说明": "图片和视频选择的来源",
    "子项": [
      {
        "合法值": "album",
        "说明": "从相册选择"
      },
      {
        "合法值": "camera",
        "说明": "使用相机拍摄"
      }
    ]
  },
  {
    "属性": "maxDuration",
    "类型": "number",
    "默认值": "10",
    "必填": "否",
    "说明": "拍摄视频最长拍摄时间，单位秒。时间范围为 3s 至 60s 之间。不限制相册。"
  },
  {
    "属性": "sizeType",
    "类型": "Array.<string>",
    "默认值": "['original', 'compressed']",
    "必填": "否",
    "说明": "是否压缩所选文件，基础库2.25.0前仅对 mediaType 为 image 时有效，2.25.0及以后对全量 mediaType 有效"
  },
  {
    "属性": "camera",
    "类型": "string",
    "默认值": "'back'",
    "必填": "否",
    "说明": "仅在 sourceType 为 camera 时生效，使用前置或后置摄像头",
    "子项": [
      {
        "合法值": "back",
        "说明": "使用后置摄像头"
      },
      {
        "合法值": "front",
        "说明": "使用前置摄像头"
      }
    ]
  },
  {
    "属性": "success",
    "类型": "function",
    "默认值": "",
    "必填": "否",
    "说明": "接口调用成功的回调函数"
  },
  {
    "属性": "fail",
    "类型": "function",
    "默认值": "",
    "必填": "否",
    "说明": "接口调用失败的回调函数"
  },
  {
    "属性": "complete",
    "类型": "function",
    "默认值": "",
    "必填": "否",
    "说明": "接口调用结束的回调函数（调用成功、失败都会执行）"
  }
]
```

#### object.success 回调函数
##### 参数

###### Object res


```json
[
  {
    "属性": "tempFiles",
    "类型": "Array.<Object>",
    "说明": "本地临时文件列表",
    "子项": [
      {
        "结构属性": "tempFilePath",
        "类型": "string",
        "说明": "本地临时文件路径 (本地路径)"
      },
      {
        "结构属性": "size",
        "类型": "number",
        "说明": "本地临时文件大小，单位 B"
      },
      {
        "结构属性": "duration",
        "类型": "number",
        "说明": "视频的时间长度"
      },
      {
        "结构属性": "height",
        "类型": "number",
        "说明": "视频的高度"
      },
      {
        "结构属性": "width",
        "类型": "number",
        "说明": "视频的宽度"
      },
      {
        "结构属性": "thumbTempFilePath",
        "类型": "string",
        "说明": "视频缩略图临时文件路径"
      },
      {
        "结构属性": "fileType",
        "类型": "string",
        "说明": "文件类型",
        "子项": [
          {
            "合法值": "image",
            "说明": "图片"
          },
          {
            "合法值": "video",
            "说明": "视频"
          }
        ]
      }
    ]
  },
  {
    "属性": "type",
    "类型": "string",
    "说明": "文件类型，有效值有 image 、video、mix"
  }
]
```

## 示例代码

```js
wx.chooseMedia({
  count: 9,
  mediaType: ['image','video'],
  sourceType: ['album', 'camera'],
  maxDuration: 30,
  camera: 'back',
  success(res) {
    console.log(res.tempFiles[0].tempFilePath)
    console.log(res.tempFiles[0].size)
  }
})
```
