import type { ZegoUser } from "../zh/ZegoExpressEntity.rtm"; import type ZegoLocalStream from "./ZegoLocalStream.web"; /** * 版权音乐配置。 * */ export interface ZegoCopyrightedMusicConfig { /** * 用户对象实例,配置用户 ID、用户名。 注意此处设置的用户 ID 需要与登录房间时设置的用户 ID 保持一致,否则会出现请求版权音乐后台服务失败的情况。 */ user: ZegoUser; } /** * 音乐资源类型。用于 [ZegoCopyrightedMusicRequestConfig] 配置。 * */ export declare enum ZegoCopyrightedMusicResourceType { /** * 原曲。 */ Song = 0, /** * 伴奏。 */ Accompaniment = 1, /** * 高潮片段。 */ AccompanimentClip = 2, /** * 抢唱片段。 */ AccompanimentSegment = 3 } /** * 点歌计费模式。 * */ export declare enum ZegoCopyrightedMusicBillingMode { /** * 按次计费。用户每获取一次歌曲资源都需要计一次费用,即根据实际调用获取歌曲资源接口(如 [requestResource] 接口)传参为按次的用户进行收费。 */ Count = 0, /** * 按用户包月计费。按月维度向单个用户计费,即统计调用获取歌曲资源传参为按用户包月的用户 ID,按月维度进行收费。 */ User = 1, /** * 按房间包月计费。按月维度向房间用户计费,即统计调用获取歌曲资源传参为按房间包月的 roomID,按月维度进行收费。 */ Room = 2, /** * 按房主包月计费。用户每获取一次资源,都计为房主获取资源,即根据实际调用获取歌曲资源接口传参为房间的 roomID、masterID,按房主进行收费。 */ Master = 3 } /** * 版权方。版权方的详细信息,请联系 ZEGO 商务人员咨询。 * */ export declare enum ZegoCopyrightedMusicVendorID { /** * 默认版权方。 */ VendorDefault = 0, /** * 版权方1。 */ Vendor1 = 1, /** * 版权方2。 */ Vendor2 = 2, /** * 版权方3。 */ Vendor3 = 4 } /** * 下载歌曲返回结果。 * */ export interface ZegoCopyrightedMusicDownloadResponse { /** * 错误码,详情请参考 常见错误码文档。 */ errorCode: number; /** * 歌曲链接列表,如果下载的是伴奏,第一个链接是伴奏,第二个是原曲。 */ urls: string[]; } /** * 获取 krc 格式歌词完成回调。 * */ export interface ZegoCopyrightedMusicGetKrcLyricByTokenResponse { /** * 错误码,详情请参考 常见错误码文档。 */ errorCode: number; /** * lrc 格式歌词,专用于逐行格式歌词场景,详情请参考 https://doc-zh.zego.im/article/15563。 */ lyrics: any; } /** * 获取 lrc 格式歌词完成回调结果。 * */ export interface ZegoCopyrightedMusicGetLrcLyricResponse { /** * 错误码,详情请参考 常见错误码文档。 */ errorCode: number; /** * lrc 格式歌词,专用于逐行格式歌词场景,详情请参考 https://doc-zh.zego.im/article/15563。 */ lyrics: any; } /** * 获取资源的配置。 * */ export interface ZegoCopyrightedMusicRequestConfig { /** * 歌曲 ID。 */ songID: string; /** * 版权方。 */ vendorID: ZegoCopyrightedMusicVendorID; /** * 计费模式。 */ mode: ZegoCopyrightedMusicBillingMode; /** * 房主 ID, 当计费模式为按房主计费时必传。指明按哪个房主进行点歌/点伴奏/高潮片段。 */ masterID?: string; /** * 场景 ID, 指明实际业务,详情可咨询 ZEGO 技术支持。 */ sceneID?: number; } export interface ZegoCopyrightedMusicRequestSharedResourceByTokenConfig { /** * 分享歌曲 token */ shareToken: string; /** * 计费模式。当歌曲版权方 vendorID 为 1 时必传。 */ mode?: ZegoCopyrightedMusicBillingMode; /** * 房主 ID, 当计费模式为按房主计费时必传。指明按哪个房主进行点歌/点伴奏/高潮片段。 */ masterID?: string; /** * 场景 ID, 指明实际业务,详情可咨询 ZEGO 技术支持。 */ sceneID?: number; } /** * 获取标准音高线数据完成回调结果。 * */ export interface ZegoCopyrightedMusicGetStandardPitchResponse { /** * 错误码,详情请参考 常见错误码文档。 */ errorCode: number; /** * 标准音高线数据。详情请参考 Android:https://doc-zh.zego.im/article/15148, iOS:https://doc-zh.zego.im/article/15147 */ pitch: any; } /** * 获取资源的结果。 * */ export interface ZegoCopyrightedMusicRequestResourceResponse { /** * 错误码,详情请参考 常见错误码文档。 */ errorCode: number; /** * 点歌服务返回的 JSON,包含歌曲资源信息,详细请参考 https://doc-zh.zego.im/article/15563#1_1。 */ resource: any; } /** * 扩展请求结果。 * */ export interface ZegoCopyrightedMusicSendExtendedRequestResponse { /** * 错误码,详情请参考 常见错误码文档。 */ errorCode: number; result: any; } /** * 开始打分相关参数。 * */ export interface ZegoStartScoreParams { /** * 伴奏或高潮片段对应的资源 ID。 */ resourceID: string; /** * 采集麦克风声音的媒体流对象。 */ localStream: MediaStream | ZegoLocalStream; /** * 播放伴奏的 h5 播放器。 */ player: HTMLMediaElement; /** * 开启每行打分完成回调。 */ enableSongLineScoreCompleteEvent?: boolean; } /** * 版权音乐功能相关事件集合。 * * Note: 详情描述:描述事件名及其对应的回调参数。 * * Note: 业务场景:用于约束注册事件接口 on 和注销事件接口 off 的参数。 * */ export interface ZegoCopyrightedMusicEvent { /** * 麦克风状态更新事件。 */ downloadProgressUpdate: DownloadProgressUpdateCallBack; songLineScoreComplete: SongLineScoreCompleteCallBack; } /** * 歌曲每行打分完成信息。 * */ export interface ZegoSongLineScoreInfo { /** * 行的索引。 */ lineIndex: number; /** * 打分完成这一句分数。 */ previousScore: number; /** * 平均分。 */ averageScore: number; /** * 总分。 */ totalScore: number; } /** * 详情描述:加载歌曲或伴奏进度回调。 * * @param resourceID 歌曲资源 ID。 * @param progressRate 加载进度,取值范围 [0,1]。 */ type DownloadProgressUpdateCallBack = (resourceID: string, progressRate: number) => void; /** * 详情描述:歌曲每行打分完成回调。 * * @param LineScoreInfo 歌曲每行回调,包含这一行结束时的分数、平均分、总分。 */ type SongLineScoreCompleteCallBack = (LineScoreInfo: ZegoSongLineScoreInfo) => void; export {};