jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
56 lines (55 loc) • 1.82 kB
TypeScript
import React from 'react';
import type { RendererProps } from 'jamis-core';
import type { AudioSchema } from './types';
interface AudioProps extends RendererProps, Omit<AudioSchema, 'className'> {
}
export interface AudioState {
src?: string;
isReady?: boolean;
muted?: boolean;
playing?: boolean;
played: number;
seeking?: boolean;
volume: number;
prevVolume: number;
loaded?: number;
playbackRate: number;
showHandlePlaybackRate: boolean;
showHandleVolume: boolean;
}
export declare class Audio extends React.Component<AudioProps, AudioState> {
audio: HTMLMediaElement;
progressTimeout: ReturnType<typeof setTimeout>;
durationTimeout: ReturnType<typeof setTimeout>;
static defaultProps: Pick<AudioProps, 'inline' | 'autoPlay' | 'playbackRate' | 'loop' | 'rates' | 'progressInterval' | 'controls'>;
state: AudioState;
componentWillUnmount(): void;
componentDidMount(): void;
componentDidUpdate(prevProps: AudioProps): void;
progress(): void;
audioRef(audio: HTMLMediaElement): void;
load(): void;
handlePlaybackRate(rate: number): void;
handleMute(): void;
handlePlaying(): void;
getCurrentTime(): string;
getDuration(): string | number;
onDurationCheck(): void;
onSeekChange(e: any): void;
onSeekMouseDown(): void;
onSeekMouseUp(e: any): void;
setVolume(e: any): void;
formatTime(seconds: number): string;
pad(string: number): string;
toggleHandlePlaybackRate(): void;
toggleHandleVolume(type: boolean): void;
renderRates(): JSX.Element | null;
renderPlay(): JSX.Element;
renderTime(): JSX.Element;
renderProcess(): JSX.Element;
renderVolume(): JSX.Element;
render(): JSX.Element;
}
export declare class AudioRenderer extends Audio {
}
export {};