diff --git a/package.json b/package.json index 6d794c6b941d..ebd6477c2cba 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "bootstrap": "npm-run-all clear-all bootstrap:lerna", "build": "lerna run build", "build:docs": "node ./build/docs.js", + "build:docs-api": "ts-node --project ./scripts/tsconfig.json ./scripts/docs-api.ts --verbose", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", "release:lerna": "lerna publish --force-publish=* --exact --skip-temp-tag", "release:beta": "lerna publish --force-publish=* --exact --skip-temp-tag --preid=beta --npm-tag=beta", diff --git a/packages/taro/package.json b/packages/taro/package.json index ab2848fd3134..785ff637f835 100644 --- a/packages/taro/package.json +++ b/packages/taro/package.json @@ -14,8 +14,7 @@ ], "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "build": "rollup -c rollup.config.js", - "docs": "ts-node ./scripts/docs-api.ts" + "build": "rollup -c rollup.config.js" }, "repository": { "type": "git", diff --git a/packages/taro/scripts/parser/index.ts b/packages/taro/scripts/parser/index.ts deleted file mode 100644 index d923a317bf0c..000000000000 --- a/packages/taro/scripts/parser/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import * as fs from "fs" -import * as path from 'path' -import * as ts from "typescript" -import { generateDocumentation, DocEntry } from "./ast" -import envMap from './taro-env' - -export default function compile (p: string, n: string, dep: string[], callback?: (routepath: string, doc: DocEntry[]) => void) { - const route = path.resolve(p, n) - const stat = fs.statSync(route) - if (stat.isDirectory()) { - fs.readdirSync(route, { - encoding: 'utf8' - }).forEach(filename => ![ - 'node_modules', 'bin', 'templates', 'dist', '__tests__', '__mocks__', '_book', '.vscode', '.idea', '.DS_Store', - ].includes(filename) && compile(route, filename, dep, callback)) - } else { - const docTree = generateDocumentation([route, ...dep], { - target: ts.ScriptTarget.ES5, - module: ts.ModuleKind.ESNext - }) - callback && callback(route, docTree) - } -} - -export { generateDocumentation, DocEntry, envMap } \ No newline at end of file diff --git a/packages/taro/types/api/framework/index.d.ts b/packages/taro/types/api/framework/index.d.ts index 6bf07777536e..96ea334c27e6 100644 --- a/packages/taro/types/api/framework/index.d.ts +++ b/packages/taro/types/api/framework/index.d.ts @@ -1,12 +1,45 @@ declare namespace Taro { + /** 注册小程序中的一个页面。接受一个 `Object` 类型参数,其指定页面的初始数据、生命周期回调、事件处理函数等。 */ interface Page { /** * 当前页面的路径 */ route: string - + /** @ignore */ [k: string]: any } + /** 获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。 + * __注意:__ + * - __不要尝试修改页面栈,会导致路由以及页面状态错误。__ + * - 不要在 `App.onLaunch` 的时候调用 `getCurrentPages()`,此时 `page` 还没有生成。 + * @supported weapp, h5 + * @example + * ```tsx + * Taro.getCurrentPages().length + * ``` + * @see https://developers.weixin.qq.com/miniprogram/dev/reference/api/getCurrentPages.html + */ function getCurrentPages(): Page[] - function getApp(): any + + /** 获取到小程序全局唯一的 App 实例。 + * @supported weapp + * @see https://developers.weixin.qq.com/miniprogram/dev/reference/api/getApp.html + */ + function getApp(opts?: getApp.Option): getApp.Instance + + namespace getApp { + interface Option { + /** 在 `App` 未定义时返回默认实现。当App被调用时,默认实现中定义的属性会被覆盖合并到App中。一般用于独立分包 */ + allowDefault?: boolean + } + type Instance = Option & T + } + + /** 注册小程序。接受一个 `Object` 参数,其指定小程序的生命周期回调等。 + * @ignore + */ + interface App extends General.IAnyObject { + /** @ignore */ + [key: string]: any + } } diff --git a/packages/taro/types/api/media/audio.d.ts b/packages/taro/types/api/media/audio.d.ts index ed032b557b50..24881f6170dd 100644 --- a/packages/taro/types/api/media/audio.d.ts +++ b/packages/taro/types/api/media/audio.d.ts @@ -1,456 +1,353 @@ declare namespace Taro { - /** + namespace stopVoice { + interface Option { + /** 接口调用结束的回调函数(调用成功、失败都会执行) */ + complete?: (res: General.CallbackResult) => void + /** 接口调用失败的回调函数 */ + fail?: (res: General.CallbackResult) => void + /** 接口调用成功的回调函数 */ + success?: (res: General.CallbackResult) => void + } + } + /** 结束播放语音。 * **注意:1.6.0 版本开始,本接口不再维护。建议使用能力更强的 [Taro.createInnerAudioContext](https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.createInnerAudioContext.html) 接口** - * 结束播放语音。 + * @supported weapp * @example - ```tsx - Taro.startRecord({ - success: function (res) { - var tempFilePath = res.tempFilePath - Taro.playVoice({ - filePath:tempFilePath - }) - setTimeout(function(){ - Taro.stopVoice() - }, 5000) - } - }) - ``` + * ```tsx + * Taro.startRecord({ + * success: function (res) { + * const filePath = res.tempFilePath + * Taro.playVoice({ filePath }) + * + * setTimeout(Taro.stopVoice, 5000) + * } + * }) + * ``` + * @example + * ```tsx + * Taro.startRecord(params).then(res => { + * const filePath = res.tempFilePath + * Taro.playVoice({ filePath }) + * + * setTimeout(Taro.stopVoice, 5000) + * }) + * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.stopVoice.html */ - function stopVoice(): void + function stopVoice(option?: stopVoice.Option): void namespace setInnerAudioOption { - type Param = { - /** - * 是否与其他音频混播,设置为 true 之后,不会终止其他应用或微信内的音乐 - */ + interface Option { + /** 接口调用结束的回调函数(调用成功、失败都会执行) */ + complete?: (res: General.CallbackResult) => void + /** 接口调用失败的回调函数 */ + fail?: (res: General.CallbackResult) => void + /** 是否与其他音频混播,设置为 true 之后,不会终止其他应用或微信内的音乐 */ mixWithOther?: boolean - /** - * (仅在 iOS 生效)是否遵循静音开关,设置为 false 之后,即使是在静音模式下,也能播放声音 - */ + /** (仅在 iOS 生效)是否遵循静音开关,设置为 false 之后,即使是在静音模式下,也能播放声音 */ obeyMuteSwitch?: boolean - /** - * 接口调用成功的回调函数 - */ - success?: ParamPropSuccess - /** - * 接口调用失败的回调函数 - */ - fail?: ParamPropFail - /** - * 接口调用结束的回调函数(调用成功、失败都会执行) - */ - complete?: ParamPropComplete + /** 接口调用成功的回调函数 */ + success?: (res: General.CallbackResult) => void } - /** - * 接口调用成功的回调函数 - */ - type ParamPropSuccess = (res: any) => any - /** - * 接口调用失败的回调函数 - */ - type ParamPropFail = (err: any) => any - /** - * 接口调用结束的回调函数(调用成功、失败都会执行) - */ - type ParamPropComplete = () => any } - /** - * 设置 InnerAudioContext 的播放选项。设置之后对当前小程序全局生效。 + + /** 设置 [InnerAudioContext](https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/InnerAudioContext.html) 的播放选项。设置之后对当前小程序全局生效。 + * @supported weapp * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.setInnerAudioOption.html */ - function setInnerAudioOption(res: setInnerAudioOption.Param): Promise + function setInnerAudioOption(option: setInnerAudioOption.Option): Promise namespace playVoice { - type Param = { - /** - * 需要播放的语音文件的文件路径 - */ + interface Option { + /** 需要播放的语音文件的文件路径 */ filePath: string - /** - * 指定录音时长,到达指定的录音时长后会自动停止录音,单位:秒,默认值:60 - */ + /** 接口调用结束的回调函数(调用成功、失败都会执行) */ + complete?: (res: General.CallbackResult) => void + /** 指定录音时长,到达指定的录音时长后会自动停止录音,单位:秒 */ duration?: number - /** - * 接口调用成功的回调函数 - */ - success?: ParamPropSuccess - /** - * 接口调用失败的回调函数 - */ - fail?: ParamPropFail - /** - * 接口调用结束的回调函数(调用成功、失败都会执行) - */ - complete?: ParamPropComplete + /** 接口调用失败的回调函数 */ + fail?: (res: General.CallbackResult) => void + /** 接口调用成功的回调函数 */ + success?: (res: General.CallbackResult) => void } - /** - * 接口调用成功的回调函数 - */ - type ParamPropSuccess = (res: any) => any - /** - * 接口调用失败的回调函数 - */ - type ParamPropFail = (err: any) => any - /** - * 接口调用结束的回调函数(调用成功、失败都会执行) - */ - type ParamPropComplete = () => any } - /** - * **注意:1.6.0 版本开始,本接口不再维护。建议使用能力更强的 [Taro.createInnerAudioContext](https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.createInnerAudioContext.html) 接口** - * - * 开始播放语音,同时只允许一个语音文件正在播放,如果前一个语音文件还没播放完,将中断前一个语音播放。 + /** 开始播放语音。同时只允许一个语音文件正在播放,如果前一个语音文件还没播放完,将中断前一个语音播放。 + * @supported weapp * @example - ```tsx - Taro.startRecord({ - success: function (res) { - var tempFilePath = res.tempFilePath - Taro.playVoice({ - filePath: tempFilePath, - complete: function(){ - } - }) - } - }) - ``` + * ```tsx + * Taro.startRecord({ + * success: function (res) { + * const tempFilePath = res.tempFilePath + * Taro.playVoice({ + * filePath: tempFilePath, + * complete: function () { } + * }) + * } + * }) + * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.playVoice.html */ - function playVoice(res: playVoice.Param): Promise + function playVoice(option: playVoice.Option): Promise - /** + namespace pauseVoice { + interface Option { + /** 接口调用结束的回调函数(调用成功、失败都会执行) */ + complete?: (res: General.CallbackResult) => void + /** 接口调用失败的回调函数 */ + fail?: (res: General.CallbackResult) => void + /** 接口调用成功的回调函数 */ + success?: (res: General.CallbackResult) => void + } + } + /** 暂停正在播放的语音。再次调用 [Taro.playVoice](https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.playVoice.html) 播放同一个文件时,会从暂停处开始播放。如果想从头开始播放,需要先调用 [Taro.stopVoice](https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.stopVoice.html)。 * **注意:1.6.0 版本开始,本接口不再维护。建议使用能力更强的 [Taro.createInnerAudioContext](https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.createInnerAudioContext.html) 接口** - * 暂停正在播放的语音。再次调用Taro.playVoice播放同一个文件时,会从暂停处开始播放。如果想从头开始播放,需要先调用 Taro.stopVoice。 + * @supported weapp * @example - ```tsx - Taro.startRecord({ - success: function (res) { - var tempFilePath = res.tempFilePath - Taro.playVoice({ - filePath: tempFilePath - }) - setTimeout(function() { - //暂停播放 - Taro.pauseVoice() - }, 5000) - } - }) - ``` + * ```tsx + * Taro.startRecord({ + * success: function (res) { + * var tempFilePath = res.tempFilePath + * Taro.playVoice({ + * filePath: tempFilePath + * }) + * setTimeout(function() { + * //暂停播放 + * Taro.pauseVoice() + * }, 5000) + * } + * }) + * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.pauseVoice.html */ - function pauseVoice(): void + function pauseVoice(option?: pauseVoice.Option): void - const enum audioSourcesTypes { - /** - * 自动设置,默认使用手机麦克风,插上耳麦后自动切换使用耳机麦克风,所有平台适用 - */ - auto = 'auto', - /** - * 手机麦克风,仅限 iOS - */ - buildInMic = 'buildInMic', - /** - * 耳机麦克风,仅限 iOS - */ - headsetMic = 'headsetMic', - /** - * 麦克风(没插耳麦时是手机麦克风,插耳麦时是耳机麦克风),仅限 Android - */ - mic = 'mic', - /** - * 同 mic,适用于录制音视频内容,仅限 Android - */ - camcorder = 'camcorder', - /** - * 同 mic,适用于实时沟通,仅限 Android - */ - voice_communication = 'voice_communication', - /** - * 同 mic,适用于语音识别,仅限 Android - */ - voice_recognition = 'voice_recognition' - } namespace getAvailableAudioSources { - type Param = { - success?: ParamPropSuccess - /** - * 接口调用失败的回调函数 - */ - fail?: ParamPropFail - /** - * 接口调用结束的回调函数(调用成功、失败都会执行) - */ - complete?: ParamPropComplete + interface Option { + /** 接口调用结束的回调函数(调用成功、失败都会执行) */ + complete?: (res: General.CallbackResult) => void + /** 接口调用失败的回调函数 */ + fail?: (res: General.CallbackResult) => void + /** 接口调用成功的回调函数 */ + success?: (result: SuccessCallbackResult) => void } - /** - * 接口调用成功的回调函数 - */ - type ParamPropSuccess = (res: Result) => any - /** - * 接口调用失败的回调函数 - */ - type ParamPropFail = (err: any) => any - /** - * 接口调用结束的回调函数(调用成功、失败都会执行) - */ - type ParamPropComplete = () => any - - type Result = { - /** - * 支持的音频输入源列表,可在 RecorderManager.start() 接口中使用。返回值定义参考 https://developer.android.com/reference/kotlin/android/media/MediaRecorder.AudioSourc - */ - audioSources: audioSourcesTypes[] + interface SuccessCallbackResult extends General.CallbackResult { + /** 支持的音频输入源列表,可在 [RecorderManager.start()](https://developers.weixin.qq.com/miniprogram/dev/api/media/recorder/RecorderManager.start.html) 接口中使用。返回值定义参考 https://developer.android.com/reference/kotlin/android/media/MediaRecorder.AudioSource */ + audioSources: Array + /** 调用结果 */ + errMsg: string + } + /** 支持的音频输入源 */ + interface audioSources { + /** 自动设置,默认使用手机麦克风,插上耳麦后自动切换使用耳机麦克风,所有平台适用 */ + 'auto' + /** 手机麦克风,仅限 iOS */ + 'buildInMic' + /** 耳机麦克风,仅限 iOS */ + 'headsetMic' + /** 麦克风(没插耳麦时是手机麦克风,插耳麦时是耳机麦克风),仅限 Android */ + 'mic' + /** 同 mic,适用于录制音视频内容,仅限 Android */ + 'camcorder' + /** 同 mic,适用于实时沟通,仅限 Android */ + 'voice_communication' + /** 同 mic,适用于语音识别,仅限 Android */ + 'voice_recognition' } } - /** - * 获取当前支持的音频输入源。 + /** 获取当前支持的音频输入源 + * @supported weapp * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.getAvailableAudioSources.html */ - function getAvailableAudioSources(res: getAvailableAudioSources.Param): Promise + function getAvailableAudioSources(option?: getAvailableAudioSources.Option): Promise - /** - * 创建并返回内部 audio 上下文 `innerAudioContext` 对象。_本接口是 `Taro.createAudioContext` 升级版。_ - * - * **errCode 说明:** - * - * errCode | 说明 - * ------------|--------- - * 10001 | 系统错误 - * 10002 | 网络错误 - * 10003 | 文件错误 - * 10004 | 格式错误 - * -1 | 未知错误 + /** 创建内部 audio 上下文 InnerAudioContext 对象。 + * @supported weapp, h5 * @example - ```tsx - const innerAudioContext = Taro.createInnerAudioContext() - innerAudioContext.autoplay = true - innerAudioContext.src = 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46' - innerAudioContext.onPlay(() => { - console.log('开始播放') - }) - innerAudioContext.onError((res) => { - console.log(res.errMsg) - console.log(res.errCode) - }) - ``` + * ```tsx + * const innerAudioContext = Taro.createInnerAudioContext() + * innerAudioContext.autoplay = true + * innerAudioContext.src = 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46' + * innerAudioContext.onPlay(() => { + * console.log('开始播放') + * }) + * innerAudioContext.onError((res) => { + * console.log(res.errMsg) + * console.log(res.errCode) + * }) + * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.createInnerAudioContext.html */ function createInnerAudioContext(): InnerAudioContext - class InnerAudioContext { - /** - * 音频的数据链接,用于直接播放。 + + /** 创建 audio 上下文 AudioContext 对象。 + * **注意:1.6.0 版本开始,本接口不再维护。建议使用能力更强的 [Taro.createInnerAudioContext](https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.createInnerAudioContext.html) 接口** + * @supported weapp + * @example + * ```tsx + * const audioCtx = Taro.createAudioContext('myAudio') + * ``` + * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.createAudioContext.html + */ + function createAudioContext( + /** [audio](https://developers.weixin.qq.com/miniprogram/dev/component/audio.html) 组件的 id */ + id: string, + /** 在自定义组件下,当前组件实例的this,以操作组件内 [audio](https://developers.weixin.qq.com/miniprogram/dev/component/audio.html) 组件 */ + component?: General.IAnyObject, + ): AudioContext + + /** `AudioContext` 实例,可通过 `Taro.createAudioContext` 获取。 + * `AudioContext` 通过 `id` 跟一个 `audio` 组件绑定,操作对应的 audio 组件。 + * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/AudioContext.html + */ + interface AudioContext { + /** 暂停音频。 + * @supported weapp + * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/AudioContext.pause.html */ - src: string - /** - * 开始播放的位置(单位:s),默认 0 + pause(): void + /** 播放音频。 + * @supported weapp + * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/AudioContext.play.html */ - startTime: number - /** - * 是否自动开始播放,默认 false + play(): void + /** 跳转到指定位置。 + * @supported weapp + * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/AudioContext.seek.html + */ + seek( + /** 跳转位置,单位 s */ + position: number, + ): void + /** 设置音频地址 + * @supported weapp + * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/AudioContext.setSrc.html + */ + setSrc( + /** 音频地址 */ + src: string, + ): void + } + /** InnerAudioContext 实例,可通过 Taro.createInnerAudioContext 接口获取实例。 + * + * **支持格式** + * + * | 格式 | iOS | Android | + * | ---- | ---- | ------- | + * | flac | x | √ | + * | m4a | √ | √ | + * | ogg | x | √ | + * | ape | x | √ | + * | amr | x | √ | + * | wma | x | √ | + * | wav | √ | √ | + * | mp3 | √ | √ | + * | mp4 | x | √ | + * | aac | √ | √ | + * | aiff | √ | x | + * | caf | √ | x | + * @example + * ```tsx + * const innerAudioContext = Taro.createInnerAudioContext() + * innerAudioContext.autoplay = true + * innerAudioContext.src = 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46' + * innerAudioContext.onPlay(() => { + * console.log('开始播放') + * }) + * innerAudioContext.onError((res) => { + * console.log(res.errMsg) + * console.log(res.errCode) + * }) + * ``` + * @see https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/InnerAudioContext.html + */ + interface InnerAudioContext { + /** 是否自动开始播放 + * @default false */ autoplay: boolean - /** - * 是否循环播放,默认 false + /** 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲 + * @readonly */ - loop: boolean - /** - * 是否遵循系统静音开关,当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音,默认值 true + buffered: number + /** 当前音频的播放位置(单位 s)。只有在当前有合法的 src 时返回,时间保留小数点后 6 位 + * @readonly */ - obeyMuteSwitch: boolean - /** - * 当前音频的长度(单位:s),只有在当前有合法的 src 时返回 + currentTime: number + /** 当前音频的长度(单位 s)。只有在当前有合法的 src 时返回 * @readonly */ duration: number - /** - * 当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 位 - * @readonly + /** 是否循环播放 + * @default false */ - currentTime: number - /** - * 当前是是否暂停或停止状态,true 表示暂停或停止,false 表示正在播放 + loop: boolean + /** 是否遵循系统静音开关。当此参数为 `false` 时,即使用户打开了静音开关,也能继续发出声音。从 2.3.0 版本开始此参数不生效,使用 [Taro.setInnerAudioOption](https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.setInnerAudioOption.html) 接口统一设置。 + * @default true + */ + obeyMuteSwitch: boolean + /** 当前是是否暂停或停止状态 * @readonly */ paused: boolean - /** - * 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲。 - * @readonly + /** 音频资源的地址,用于直接播放。 */ + src: string + /** 开始播放的位置(单位:s) + * @default 0 */ - buffered: number - /** - * 音量。范围 0~1。 + startTime: number + /** 音量。范围 0~1。 + * @default 1 */ volume: number - /** - * 播放 - */ + /** 播放 */ play(): void - /** - * 暂停 - */ + /** 暂停 */ pause(): void - /** - * 停止 - */ + /** 停止 */ stop(): void - /** - * 跳转到指定位置,单位 s - */ + /** 跳转到指定位置,单位 s */ seek(position: number): void - /** - * 销毁当前实例 - */ + /** 销毁当前实例 */ destroy(): void - /** - * 音频进入可以播放状态,但不保证后面可以流畅播放 - */ + /** 音频进入可以播放状态,但不保证后面可以流畅播放 */ onCanplay(callback?: () => void): void - /** - * 音频播放事件 - */ + /** 音频播放事件 */ onPlay(callback?: () => void): void - /** - * 音频暂停事件 - */ + /** 音频暂停事件 */ onPause(callback?: () => void): void - /** - * 音频停止事件 - */ + /** 音频停止事件 */ onStop(callback?: () => void): void - /** - * 音频自然播放结束事件 - */ + /** 音频自然播放结束事件 */ onEnded(callback?: () => void): void - /** - * 音频播放进度更新事件 - */ + /** 音频播放进度更新事件 */ onTimeUpdate(callback?: () => void): void - /** - * 音频播放错误事件 - */ + /** 音频播放错误事件 */ onError(callback?: () => void): void - /** - * 音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 - */ + /** 音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 */ onWaiting(callback?: () => void): void - /** - * 音频进行 seek 操作事件 - */ + /** 音频进行 seek 操作事件 */ onSeeking(callback?: () => void): void - /** - * 音频完成 seek 操作事件 - */ + /** 音频完成 seek 操作事件 */ onSeeked(callback?: () => void): void - /** - * 取消监听 onCanplay 事件 - */ + /** 取消监听 onCanplay 事件 */ offCanplay(callback?: () => void): void - /** - * 取消监听 onPlay 事件 - */ + /** 取消监听 onPlay 事件 */ offPlay(callback?: () => void): void - /** - * 取消监听 onPause 事件 - */ + /** 取消监听 onPause 事件 */ offPause(callback?: () => void): void - /** - * 取消监听 onStop 事件 - */ + /** 取消监听 onStop 事件 */ offStop(callback?: () => void): void - /** - * 取消监听 onEnded 事件 - */ + /** 取消监听 onEnded 事件 */ offEnded(callback?: () => void): void - /** - * 取消监听 onTimeUpdate 事件 - */ + /** 取消监听 onTimeUpdate 事件 */ offTimeUpdate(callback?: () => void): void - /** - * 取消监听 onError 事件 - */ + /** 取消监听 onError 事件 */ offError(callback?: () => void): void - /** - * 取消监听 onWaiting 事件 - */ + /** 取消监听 onWaiting 事件 */ offWaiting(callback?: () => void): void - /** - * 取消监听 onSeeking 事件 - */ + /** 取消监听 onSeeking 事件 */ offSeeking(callback?: () => void): void - /** - * 取消监听 onSeeked 事件 - */ + /** 取消监听 onSeeked 事件 */ offSeeked(callback?: () => void): void } - - /** - * **注意:1.6.0 版本开始,本接口不再维护。建议使用能力更强的 [Taro.createInnerAudioContext](https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.createInnerAudioContext.html) 接口** - * - * 创建并返回 audio 上下文 `audioContext` 对象。在自定义组件下,第二个参数传入组件实例this,以操作组件内 `