文档管理中心

TextReader(朗读控件)

朗读控件使用AI能力将文本实时转化成语音并进行朗读,适用于一些新闻类、小说类等文本内容浏览类APP,帮助用户在一些无法直接浏览文本内容的场景下,通过文本朗读来高效获取信息。

起始版本:5.0.0(12)

导入模块

import { TextReader } from '@kit.SpeechKit';

init

init(context: common.BaseContext, readParams: ReaderParam): Promise<void>

朗读控件初始化,用于初始化TTS引擎和底层播放器,初始化失败会返回对应错误码。

使用Promise异步回调。若要配置长时权限,请参考开发指南步骤8

系统能力: SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

context

common.BaseContext

当前应用上下文

readParams

ReaderParam

朗读参数

返回值:

展开

类型

说明

Promise<void>

Promise对象。无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

201

Permission denied. Interface caller does not have permission "ohos.permission.KEEP_BACKGROUND_RUNNING".

401

Parameter error.

1010600011

Initialize failed.

示例:
import { TextReader } from '@kit.SpeechKit';
import { BusinessError } from '@kit.BasicServicesKit';

// 获取应用上下文
let context: Context = getContext(this);
// 设置朗读参数
const readerParams: TextReader.ReaderParam = {
  isVoiceBrandVisible: true,
  businessBrandInfo: {
    panelName: '小艺朗读',
    panelIcon: $r('app.media.startIcon')
  }
};
// 初始化朗读控件
TextReader.init(context, readerParams).then(() => {
  console.info(`TextReader succeeded in initializing.`);
}).catch((e: BusinessError) => {
  console.error(`TextReader failed to initialize. Code: ${e.code}, message: ${e.message}`);
})

start

start(readInfoList: ReadInfo[], articleId?: string): Promise<void>

朗读控件起播,拉起播放器面板并开始播放。播放失败返回对应错误码。

使用Promise异步回调。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

readInfoList

ReadInfo[]

播放文章列表

  • 若列表的第一篇文章是有分类的(即带有catgory字段),后续文章不带分类,也会归为“其他”分类下
  • 若列表的第一篇是没有分类的,后续文章即使带分类,也不会生效

articleId

string

文章id,articleId不传时,默认从文章列表中的第一篇开始播放;传参时,从传入articleId对应的文章开始依次往下播放。(文章id不能重复,否则从列表进入同id的文章,会自动选择同id的第一篇朗读)

返回值:

展开

类型

说明

Promise<void>

Promise对象。无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

Parameter error.

1010600012

The TextReader is not initialized.

1010600013

Text-to-speech engine error.

1010600014

AudioRenderer play error.

1010600015

Audio decode error.

1010600016

AVSession error.

1010600017

Other error.

示例:
import { TextReader } from '@kit.SpeechKit';
import { BusinessError } from '@kit.BasicServicesKit';

const readInfoList: TextReader.ReadInfo[] = [{
  id: '001',
  title: {
    text:'水调歌头.明月几时有',
    isClickable:true
  },
  author:{
    text:'宋.苏轼',
    isClickable:true
  },
  date: {
    text:'2024/01/01',
    isClickable:false
  },
  bodyInfo: '明月几时有?把酒问青天。'
}];
// 启动朗读控件
TextReader.start(readInfoList).then(() => {
  console.info(`TextReader succeeded in starting`);
}).catch((e: BusinessError) => {
  console.error(`TextReader failed to start. Code: ${e.code}, message: ${e.message}`);
})

stop

stop(): Promise<void>

朗读控件停止朗读,执行播放面板的关闭,注销监听,重置参数。

使用Promise异步回调。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

返回值:

展开

类型

说明

Promise<void>

Promise对象。无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

1010600012

The TextReader is not initialized.

示例:
import { TextReader } from '@kit.SpeechKit';
import { BusinessError } from '@kit.BasicServicesKit';

TextReader.stop().then(() => {
  console.info(`TextReader succeeded in stopping.`);
}).catch((e: BusinessError) => {
  console.error(`TextReader failed to stop. Code: ${e.code}, message: ${e.message}`);
})

release

release(): Promise<void>

释放朗读控件的所有资源。

使用Promise异步回调。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

返回值:

展开

类型

说明

Promise<void>

Promise对象。无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

1010600012

The TextReader is not initialized.

1010600020

Release error.

示例:
import { TextReader } from '@kit.SpeechKit';
import { BusinessError } from '@kit.BasicServicesKit';

TextReader.release().then(() => {
  console.info(`TextReader succeeded in releasing.`);
}).catch((e: BusinessError) => {
  console.error(`TextReader failed to release. Code: ${e.code}, message: ${e.message}`);
})

pause

pause(): void

暂停播放。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

1010600012

The TextReader is not initialized.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.pause();
} catch (e) {
  console.error(`TextReader failed to pause. Code: ${e.code}, message: ${e.message}`);
}

resume

resume(): void

继续播放。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

1010600012

The TextReader is not initialized.

1010600013

Text-to-speech engine error.

1010600014

AudioRenderer play error.

1010600015

Audio decode error.

1010600016

AvSession error.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.resume();
} catch (e) {
  console.error(`TextReader failed to resume. Code: ${e.code}, message: ${e.message}`);
}

playPrev

playPrev(): void

播放上一篇文章。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

1010600012

The TextReader is not initialized.

1010600018

playPrev failed.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.playPrev();
} catch (e) {
  console.error(`TextReader failed to play previous article. Code: ${e.code}, message: ${e.message}`);
}

playNext

playNext(): void

播放下一篇文章。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

1010600012

The TextReader is not initialized.

1010600019

playNext failed.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.playNext();
} catch (e) {
  console.error(`TextReader failed to play next article. Code: ${e.code}, message: ${e.message}`);
}

hidePanel

hidePanel(): void

隐藏播放面板。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

1010600012

The TextReader is not initialized.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.hidePanel();
} catch (e) {
  console.error(`TextReader failed to hide panel. Code: ${e.code}, message: ${e.message}`);
}

showPanel

showPanel(): void

打开播放面板。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

1010600012

The TextReader is not initialized.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.showPanel();
} catch (e) {
  console.error(`TextReader failed to show panel. Code: ${e.code}, message: ${e.message}`);
}

queryReadState

queryReadState(id?: string): ReadState

查询文章播报状态。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

id

string

文章id

返回值:

展开

类型

说明

ReadState

文章播报状态

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

Parameter error.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  let readState = TextReader.queryReadState('article_01');
  console.info(`Succeeded in querying read state, read state: ${JSON.stringify(readState)}`);
} catch(e) {
  console.error(`TextReader failed to queryReadState. Code: ${e.code}, message: ${e.message}`);
}

setArticleContent

setArticleContent(id: string, content?: string): void

设置文章内容。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

id

string

文章id

content

string

文章内容,content不传或者为空时,播放指定id的文章时,控件内容页显示加载失败;传参时,将指定id文章的内容设置为content

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

Parameter error.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.setArticleContent('article_01', '明月几时有?把酒问青天。');
} catch (e) {
  console.error(`TextReader failed to setArticleContent. Code: ${e.code}, message: ${e.message}`);
}

setArticle

setArticle(readInfo: ReadInfo): void

设置指定文章的信息,并立即播放。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

readInfo

ReadInfo

文章信息,包括图片和内容;如果文章的ID不在列表中,则不会生效。

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

Parameter error.

示例:
import { TextReader } from '@kit.SpeechKit';
import { image } from '@kit.ImageKit';

const readInfo: TextReader.ReadInfo = {
  id: '001',
  title: {
    text:'水调歌头.明月几时有',
    isClickable:true
  },
  author:{
    text:'宋.苏轼',
    isClickable:true
  },
  date: {
    text:'2024/01/01',
    isClickable:false
  },
  bodyInfo: '明月几时有?把酒问青天。',
  image: {} as image.PixelMap
};
try {
  TextReader.setArticle(readInfo);
} catch (e) {
  console.error(`TextReader failed to setArticle. Code: ${e.code}, message: ${e.message}`);
}

loadMore

loadMore(readInfos: ReadInfo[], isEnd: boolean): void

加载更多文章到文章列表。需在项目init和start之后调用,建议在'requestMore'操作监听中使用。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

readInfos

ReadInfo[]

要加载的文章列表

isEnd

boolean

是否还有更多内容需要加载

  • true:已加载所有内容
  • false:还有内容未加载完

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

Parameter error.

示例:
import { ReadStateCode, TextReader, TextReaderIcon } from '@kit.SpeechKit';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct Index {

  @State readInfoList: TextReader.ReadInfo[] = [];
  @State readState: ReadStateCode = ReadStateCode.WAITING;
  @State isInit: boolean = false;
  @State selectedReadInfo: TextReader.ReadInfo = this.readInfoList[0];
  async aboutToAppear(){

    let context: Context = getContext(this);

    // 设置朗读参数
    const readerParams: TextReader.ReaderParam = {
      isVoiceBrandVisible: true,
      businessBrandInfo: {
        panelName: '小艺朗读',
        panelIcon: $r('app.media.startIcon')
      }
    };

    // 初始化朗读控件
    TextReader.init(context, readerParams).then(() => {
      console.info(`TextReader succeeded in initializing.`);
    }).catch((e: BusinessError) => {
      console.error(`TextReader failed to initialize. Code: ${e.code}, message: ${e.message}`);
    })

    /**
     * 加载数据
     */
    console.info(`ReadStateCode: ${JSON.stringify(this.readState)}`);
    let readInfoList: TextReader.ReadInfo[] = [{
      id: '001',
      title: {
        text:'水调歌头.明月几时有',
        isClickable:true
      },
      author:{
        text:'宋.苏轼',
        isClickable:true
      },
      date: {
        text:'2024/01/01',
        isClickable:false
      },
      bodyInfo: '明月几时有?把酒问青天。'
    }];
    this.readInfoList = readInfoList;
    this.selectedReadInfo = this.readInfoList[0];
  }

  // 设置操作监听
  setActionListener() {
    //...
    TextReader.on('requestMore', () => {
      console.info(`requestMore`);
      try {
        console.info(`loadMore`);
        TextReader.loadMore(this.readInfoList, true);
      } catch (e) {
        console.error(`TextReader failed to loadMore. Code: ${e.code}, message: ${e.message}`);
      }
    });
  }


  build() {
    Column() {
      TextReaderIcon({ readState: this.readState })
        .margin({ right: 20 })
        .width(32)
        .height(32)
        .onClick(async () => {
          try {
            this.setActionListener();
            await TextReader.start(this.readInfoList, this.selectedReadInfo?.id);
          } catch(e) {
            console.error(`TextReader failed to start`);
          }
        })
    }
    .height('100%')
  }
}

on(type: 'setArticle')

on(type: 'setArticle', callback: Callback<string>): void

注册设置文章回调函数,点击文章或者切换文章时,若目标文章内容为空(bodyInfo值为空)时,触发该回调执行。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为'setArticle',设置文章后,目标文章内容为空(bodyInfo值为空)时,触发该事件

callback

Callback<string>

点击文章或者切换文章时,执行的回调函数,参数为文章id

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.on('setArticle', (id: string) => {
    console.info(`Succeeded in setting setArticleListener: ${id}`);
  });
} catch (e) {
  console.error(`TextReader failed to set eventListener. Code: ${e.code}, message: ${e.message}`);
}

off(type: 'setArticle')

off(type: 'setArticle', callback?: Callback<string>): void

在on(type: 'setArticle')函数调用之后使用,用于注销设置文章回调函数。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为'setArticle',设置文章后,触发该事件

callback

Callback<string>

需要取消监听的回调函数,需与订阅时传入的回调函数是同一个,若不填,则取消当前应用监听该事件的所有回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.off('setArticle');
} catch (e) {
  console.error(`TextReader failed to unset eventListener. Code: ${e.code}, message: ${e.message}`);
}

on(type: 'clickArticle' | 'clickAuthor' | 'clickNotification')

on(type: 'clickArticle' | 'clickAuthor' | 'clickNotification', callback: Callback<string>): void

注册点击事件回调函数,点击标题、作者、通知栏时,触发该回调执行。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型

  • 'clickArticle':点击文章标题,触发回调
  • 'clickAuthor':点击作者,触发回调
  • 'clickNotification':点击通知栏,触发回调。预留参数,暂未支持

callback

Callback<string>

点击事件回调函数,参数为文章id

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.on('clickArticle', (id: string) => {
    console.info(`Succeeded in setting clickArticleListener: ${id}`);
  });
  TextReader.on('clickAuthor', (id: string) => {
    console.info(`Succeeded in setting clickAuthorListener: ${id}`);
  });
  TextReader.on('clickNotification', (id: string) => {
    console.info(`Succeeded in setting clickNotificationListener: ${id}`);
  });
} catch (e) {
  console.error(`TextReader failed to set eventListener. Code: ${e.code}, message: ${e.message}`);
}

off(type: 'clickArticle' | 'clickAuthor' | 'clickNotification')

off(type: 'clickArticle' | 'clickAuthor' | 'clickNotification', callback?: Callback<string>): void

在on(type: 'clickArticle' | 'clickAuthor' | 'clickNotification')函数调用之后使用,用于注销点击事件回调函数。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型

  • 'clickArticle':点击文章标题,取消回调
  • 'clickAuthor':点击作者事件,取消回调
  • 'clickNotification':点击通知栏事件,取消回调

callback

Callback<string>

需要取消监听的回调函数,需与订阅时传入的回调函数是同一个,若不填,则取消当前应用监听该事件的所有回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.off('clickArticle');
  TextReader.off('clickAuthor');
  TextReader.off('clickNotification');
} catch (e) {
  console.error(`TextReader failed to unset eventListener. Code: ${e.code}, message: ${e.message}`);
}

on(type: 'showPanel' | 'hidePanel')

on(type: 'showPanel' | 'hidePanel', callback: Callback<void>): void

拉起/收回播放面板时,触发该回调执行。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型

  • 'showPanel':拉起面板,触发回调
  • 'hidePanel':收回面板,触发回调

callback

Callback<void>

面板事件回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:
import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.on('showPanel', () => {
    console.info(`Succeeded in setting showPanelListener.`);
  });
  TextReader.on('hidePanel', () => {
    console.info(`Succeeded in setting hidePanelListener.`);
  });
} catch (e) {
  console.error(`TextReader failed to set eventListener. Code: ${e.code}, message: ${e.message}`);
}

off(type: 'showPanel' | 'hidePanel')

off(type: 'showPanel' | 'hidePanel', callback?: Callback<void>): void

在on(type: 'showPanel' | 'hidePanel')函数调用之后使用,用于注销拉起/收回播放面板监听事件。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型

  • 'showPanel':拉起面板,取消回调
  • 'hidePanel':收起面板,取消回调

callback

Callback<void>

需要取消监听的回调函数,需与订阅时传入的回调函数是同一个,若不填,则取消当前应用监听该事件的所有回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.off('showPanel');
  TextReader.off('hidePanel');
} catch (e) {
  console.error(`TextReader failed to unset eventListener. Code: ${e.code}, message: ${e.message}`);
}

on(type: 'stop' | 'release')

on(type: 'stop' | 'release', callback: Callback<void>): void

调用stop/release时,触发该回调执行。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型

  • 'stop':调用stop接口或用户主动滑动通知栏退出
  • 'release':调用release释放资源

callback

Callback<void>

stop/release事件回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.on('stop', () => {
    console.info(`Succeeded in setting stopListener.`);
  });
  TextReader.on('release', () => {
    console.info(`Succeeded in setting releaseListener.`);
  });
} catch (e) {
  console.error(`TextReader failed to set eventListener. Code: ${e.code}, message: ${e.message}`);
}

off(type: 'stop' | 'release')

off(type: 'stop' | 'release', callback?: Callback<void>): void

在on(type: 'stop' | 'release')函数调用之后使用,用于注销stop/release事件的回调函数。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型

  • 'stop':调用stop接口或用户主动滑动通知栏退出
  • 'release':调用release释放资源

callback

Callback<void>

需要取消监听的回调函数,需与订阅时传入的回调函数是同一个,若不填,则取消当前应用监听该事件的所有回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.off('stop');
  TextReader.off('release');
} catch (e) {
  console.error(`TextReader failed to unset eventListener. Code: ${e.code}, message: ${e.message}`);
}

on(type: 'stateChange')

on(type: 'stateChange', callback: Callback<ReadState>): void

当前正在播放的文章状态变更时,触发该回调执行。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为'stateChange',当前正在播放的文章状态变更时,触发该事件

callback

Callback<ReadState>

正在播放的文章状态变更时,执行的回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.on('stateChange', (state: TextReader.ReadState) => {
    console.info(`Succeeded in setting stateChangeListener: ${JSON.stringify(state)}`);
  });
} catch (e) {
  console.error(`TextReader failed to set eventListener. Code: ${e.code}, message: ${e.message}`);
}

off(type: 'stateChange')

off(type: 'stateChange', callback?: Callback<ReadState>): void

在on(type: 'stateChange')函数调用之后使用,用于注销正在播放的文章状态变更的回调函数。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为'stateChange',当前正在播放的文章状态变更时,触发该事件

callback

Callback<ReadState>

需要取消监听的回调函数,需与订阅时传入的回调函数是同一个,若不填,则取消当前应用监听该事件的所有回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.off('stateChange');
} catch (e) {
  console.error(`TextReader failed to unset eventListener. Code: ${e.code}, message: ${e.message}`);
}

on(type: 'requestMore')

on(type: 'requestMore', callback: Callback<void>): void

拉到播放列表底端或播放到文章最后一篇,触发该回调执行。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为'requestMore',请求更多文章时,触发该事件监听

callback

Callback<void>

拉到播放列表底端或播放到文章最后一篇,触发该回调执行

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.on('requestMore', () => {
    console.info(`Succeeded in setting requestMoreListener.`);
  });
} catch (e) {
  console.error(`TextReader failed to set eventListener. Code: ${e.code}, message: ${e.message}`);
}

off(type: 'requestMore')

off(type: 'requestMore', callback?: Callback<void>): void

在on(type: 'requestMore')函数调用之后使用,用于注销拉到播放列表底端或播放到文章最后一篇的回调函数。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为'requestMore',请求更多文章时,触发该事件监听

callback

Callback<void>

需要取消监听的回调函数,需与订阅时传入的回调函数是同一个,若不填,则取消当前应用监听该事件的所有回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.off('requestMore');
} catch (e) {
  console.error(`TextReader failed to unset eventListener. Code: ${e.code}, message: ${e.message}`);
}

on(type: 'eventNotification' | 'eventPanel')

on(type: 'eventNotification' | 'eventPanel', callback: Callback<NotificationEvent| PanelEvent>): void

通知栏+播控中心、播放面板状态发生变化时,触发该回调执行。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型

  • 'eventNotification':通知栏+播控中心状态变化
  • 'eventPanel':播放面板状态变化,其中PanelEvent中的BPC_10 click事件回调只支持手机

callback

Callback<NotificationEvent | PanelEvent>

通知栏+播控中心/播放面板状态发生变化时,触发该回调执行

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.on('eventNotification', (ne: TextReader.NotificationEvent) => {
    console.info(`Succeeded in setting eventNotificationListener: ${JSON.stringify(ne)}`);
  });
  TextReader.on('eventPanel', (pe: TextReader.PanelEvent) => {
    console.info(`Succeeded in setting eventPanelListener: ${JSON.stringify(pe)}`);
  });
} catch (e) {
  console.error(`TextReader failed to set eventListener. Code: ${e.code}, message: ${e.message}`);
}

off(type: 'eventNotification' | 'eventPanel')

off(type: 'eventNotification' | 'eventPanel', callback?: Callback<NotificationEvent | PanelEvent>): void

在on(type: 'eventNotification' | 'eventPanel')函数调用之后使用,用于注销通知栏+播控中心、播放面板状态发生变化的回调函数。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型

  • 'eventNotification':通知栏+播控中心状态变化
  • 'eventPanel':播放面板状态变化

callback

Callback<NotificationEvent | PanelEvent>

需要取消监听的回调函数,需与订阅时传入的回调函数是同一个,若不填,则取消当前应用监听该事件的所有回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.off('eventNotification');
  TextReader.off('eventPanel');
} catch (e) {
  console.error(`TextReader failed to unset eventListener. Code: ${e.code}, message: ${e.message}`);
}

on(type: 'eventReadList')

on(type: 'eventReadList', callback: Callback<Array<ListEventState>>): void

注册播报列表相关事件监听,点击播报列表图标时,触发该回调执行。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为'eventReadList'

callback

Callback<Array<ListEventState>>

播报列表发生相关事件时,触发该回调执行

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.on('eventReadList', (list: Array<TextReader.ListEventState>) => {
    list.forEach((id) => {
      console.info(`Succeeded in setting eventReadListListener, article id: ${id}`);
    })
  });
} catch (e) {
  console.error(`TextReader failed to set eventListener. Code: ${e.code}, message: ${e.message}`);
}

off(type: 'eventReadList')

off(type: 'eventReadList', callback?: Callback<Array<ListEventState>>): void

在on(type: 'eventReadList')函数调用之后使用,用于注销播报列表相关事件的回调函数。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为'eventReadList'

callback

Callback<Array<ListEventState>>

需要取消监听的回调函数,需与订阅时传入的回调函数是同一个,若不填,则取消当前应用监听该事件的所有回调函数

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

parameter check failed.

示例:

import { TextReader } from '@kit.SpeechKit';

try {
  TextReader.off('eventReadList');
} catch (e) {
  console.error(`TextReader failed to unset eventListener. Code: ${e.code}, message: ${e.message}`);
}

ReaderParam

朗读参数

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

展开

名称

类型

只读

可选

说明

isVoiceBrandVisible

boolean

是否显示播报品牌

  • 默认false:不显示品牌信息,
  • 配置为true:显示品牌信息

businessBrandInfo

BusinessBrandInfo

播报品牌信息

isFastForward

boolean

是否快进快退逻辑

  • 默认false:上下一句切换,
  • 配置为true:快进快退15秒

keepBackgroundRunning

boolean

是否使用保持后台运行的功能

预留参数,暂未支持。

如需要设置后台运行功能,请配置长时任务权限

online

number

默认不支持在线

合成模式:0为在线,1为离线

预留参数,当前只支持离线

BusinessBrandInfo

播报品牌信息

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

展开

名称

类型

只读

可选

说明

panelName

string

播放面板顶部展示的业务名称,系统字体大小为标准时,英文占1个字符长度,中文占2个字符长度,累计超过24个字符长度时会省略显示(系统字体大小有变动时,显示长度会有变化)

panelIcon

ResourceStr

播放面板顶部展示的业务图标

预留参数,暂未支持

notificationIcon

ResourceStr

通知栏展示的业务图标

预留参数,暂未支持

notificationName

string

通知栏展示的业务名称

预留参数,暂未支持

ReadState

播报状态。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

展开

名称

类型

只读

可选

说明

id

string

文章id

state

ReadStateCode

当前的朗读状态

ReadInfo

朗读信息。

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

展开

名称

类型

只读

可选

说明

id

string

文章标识ID

title

TextInfo

标题

category

string

类目

author

TextInfo

文章的作者

date

TextInfo

文章的时间(例:Mon Jul 08 2024 21:25:41 GMT+0800)

预留参数,暂未支持

image

image.PixelMap

封面图图片

若没传,采用默认封面图

bodyInfo

string

setArticle以及loadMore接口必填

其他实时朗读的正文信息(长度10000汉字以内)

TextInfo

文字信息

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

名称

类型

只读

可选

说明

text

string

文本

isClickable

boolean

是否支持点击收回播报面板

  • true:点击收回播报面板
  • false:点击不收回播报面板

PanelEvent

播放面板事件

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

名称

类型

只读

可选

说明

id

string

文章ID

click

string

  • BPC_01:播放按钮点击
  • BPC_02:暂停按钮点击
  • BPC_03:上一条按钮点击
  • BPC_04:下一条按钮点击
  • BPC_05:语速按钮点击
  • BPC_06:音色按钮点击
  • BPC_07:播报列表点击
  • BPC_08:标题点击
  • BPC_09:作者点击
  • BPC_10:左上角箭头或下滑关掉

NotificationEvent

通知栏事件

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

名称

类型

只读

可选

说明

id

string

文章ID

type

number

1:通知栏点击回调

2:播控中心点击回调

click

string

  • NBC_01:播放按钮点击
  • NBC_02:暂停按钮点击、移除通知栏播控中心
  • NBC_03:关闭按钮点击(预留能力,暂未支持)
  • NBC_04:上一条按钮点击
  • NBC_05:下一条按钮点击
  • NBC_06:文章图片点击(预留能力,暂未支持)
  • NBC_07:文章标题点击(预留能力,暂未支持)

ListEventState

列表事件状态

系统能力:SystemCapability.AI.Component.TextReader

起始版本:5.0.0(12)

参数:

展开

名称

类型

只读

可选

说明

id

string

文章ID

在 API参考 中进行搜索
请输入您想要搜索的关键词