UNPKG

@bililive-tools/manager

Version:
64 lines (63 loc) 2.33 kB
import EventEmitter from "node:events"; import { createRecordExtraDataController } from "../xml_stream_controller.js"; import type { RecorderCreateOpts } from "../recorder.js"; import type { TrueVideoFormat } from "../index.js"; import type { XmlStreamStats } from "../xml_stream_controller.js"; export type GetSavePath = (data: { startTime: number; title?: string; extraMs?: boolean; }) => string; type RecorderType = Exclude<RecorderCreateOpts["recorderType"], undefined | "auto">; export interface VideoFileCompletedPayload { filename: string; stats?: XmlStreamStats; } export declare class Segment extends EventEmitter { extraDataController: ReturnType<typeof createRecordExtraDataController> | null; init: boolean; getSavePath: GetSavePath; /** 原始的文件名,用于重命名 */ rawRecordingVideoPath: string; /** 输出文件名名,不包含拓展名 */ outputVideoFilePath: string; disableDanma: boolean; videoExt: TrueVideoFormat; options?: { firstStartTime: number; }; constructor(getSavePath: GetSavePath, disableDanma: boolean, videoExt: TrueVideoFormat, options?: { firstStartTime: number; }); private getVideoFileCompletedPayload; handleSegmentEnd(): Promise<void>; onSegmentStart(stderrLine: string, callBack?: { onUpdateLiveInfo: () => Promise<{ title?: string; cover?: string; }>; }): Promise<void>; get outputFilePath(): string; } export declare class StreamManager extends EventEmitter { private segment; private extraDataController; recordSavePath: string; recordStartTime?: number; hasSegment: boolean; recorderType: RecorderType; private videoFormat; private callBack?; constructor(getSavePath: GetSavePath, hasSegment: boolean, disableDanma: boolean, recorderType: RecorderType, videoFormat: TrueVideoFormat, callBack?: { onUpdateLiveInfo: () => Promise<{ title?: string; cover?: string; }>; }); handleVideoStarted(stderrLine: string): Promise<void>; handleVideoCompleted(): Promise<void>; getExtraDataController(): import("../xml_stream_controller.js").XmlStreamController | null; get videoExt(): TrueVideoFormat; get videoFilePath(): string; } export {};