{"version":3,"file":"audio-utils.cjs","sources":["../../../src/utils/audio-utils.js"],"sourcesContent":["import execa from 'execa';\r\nimport fs from 'fs-extra';\r\n\r\n/**\r\n * 获取音频文件时长\r\n * @param {string} audioFile - 音频文件路径\r\n * @returns {Promise<number>} 音频时长（秒）\r\n */\r\nexport async function getAudioDuration(audioFile) {\r\n  if (!audioFile || !await fs.pathExists(audioFile)) {\r\n    console.warn(`音频文件不存在: ${audioFile}`);\r\n    return 0;\r\n  }\r\n\r\n  try {\r\n    const { stdout } = await execa('ffprobe', [\r\n      '-v', 'error',\r\n      '-show_entries', 'format=duration',\r\n      '-of', 'default=noprint_wrappers=1:nokey=1',\r\n      audioFile,\r\n    ]);\r\n    \r\n    const duration = parseFloat(stdout.trim());\r\n    return duration || 0;\r\n  } catch (error) {\r\n    console.warn(`无法获取音频时长: ${error.message}`);\r\n    return 0;\r\n  }\r\n}\r\n"],"names":[],"mappings":";;;;;AAGA;AACA;AACA;AACA;AACA;AACO,eAAe,gBAAgB,CAAC,SAAS,EAAE;AAClD,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AACrD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,OAAO,CAAC,CAAC;AACb,EAAE,CAAC;AACH;AACA,EAAE,IAAI;AACN,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;AAC9C,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,eAAe,EAAE,iBAAiB;AACxC,MAAM,KAAK,EAAE,oCAAoC;AACjD,MAAM,SAAS;AACf,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,IAAI,OAAO,QAAQ,IAAI,CAAC,CAAC;AACzB,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,OAAO,CAAC,CAAC;AACb,EAAE,CAAC;AACH;;;;"}