---
name: "getVoiceList"
mode: "api"
versionRequirements:
  - { name: "@ray-js/ray", version: "1.5.36" }
  - { name: "基础库", version: "2.21.0" }
title: "机器语音"
---

## getVoiceList

> [VERSION] @ray-js/ray >= 1.5.36 | 基础库 >= 2.21.0

### 描述

获取扫地机的语音包列表

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `params` | `GetVoiceListParams` | 是 | 查询参数，包含设备 ID 和分页信息 |

### 返回值

类型: `Promise<GetVoiceListResponse>`

Promise，resolve 值为语音包列表、当前页码和总数

##### GetVoiceListResponse

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `datas` | `VoiceItem[]` | 语音包数据数组 |
| `pageNo` | `number` | 当前页码 |
| `totalCount` | `number` | 数据总数 |

### 引用对象

##### `interface` GetVoiceListParams

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `devId` | `string` | 设备 ID |
| `deviceId` | `string` | 设备 ID（兼容字段） |
| `offset` | `number` | 分页偏移量，语言包较少时可传 0 |
| `limit` | `number` | 每页大小，建议传 100 |

##### `interface` VoiceItem

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `auditionUrl` | `string` | 试听链接 |
| `desc` | `string` | 描述（可选） |
| `extendData` | `VoiceExtendData` | 扩展数据 |
| `id` | `number` | 语音包 ID |
| `imgUrl` | `string` | 封面图片链接 |
| `name` | `string` | 语音包名称 |
| `officialUrl` | `string` | 官方下载链接 |
| `productId` | `string` | 产品 ID |
| `region` | `string[]` | 可用区域代码数组 |

##### `interface` VoiceExtendData

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `extendId` | `number` | 扩展 ID，与设备上报的语言包 ID 对比可判断是否正在使用 |
| `version` | `string` | 版本号 |


### 示例代码

```tsx
import React from 'react';
import { Button, getVoiceList } from '@ray-js/ray';

export default function Demo() {
  const handleFetch = async () => {
    const result = await getVoiceList({
      devId: 'your-device-id',
      offset: 0,
      limit: 100,
    });
    console.log(result.datas, result.totalCount);
  };
  return <Button onClick={handleFetch}>获取语音包列表</Button>;
}
```
