26 lines
773 B
TypeScript
26 lines
773 B
TypeScript
import { ACCEPTED_EXTENSIONS, MAX_FILE_SIZE } from "../constants/cloneModal"
|
|
|
|
/**
|
|
* 格式化录制时间 mm:ss
|
|
*/
|
|
export const formatRecordTime = (seconds: number): string => {
|
|
const m = Math.floor(seconds / 60)
|
|
const s = seconds % 60
|
|
return `${m.toString().padStart(2, "0")}:${s.toString().padStart(2, "0")}`
|
|
}
|
|
|
|
/**
|
|
* 验证上传的音频文件
|
|
* @returns 错误信息,null 表示验证通过
|
|
*/
|
|
export const validateFile = (file: File): string | null => {
|
|
const ext = file.name.split(".").pop()?.toLowerCase()
|
|
if (!ext || !ACCEPTED_EXTENSIONS.includes(ext)) {
|
|
return "不支持的音频格式,请上传 MP3、WAV 或 M4A 文件"
|
|
}
|
|
if (file.size > MAX_FILE_SIZE) {
|
|
return "文件大小超过 10MB,请压缩后重试"
|
|
}
|
|
return null
|
|
}
|