派生自 projectDept/qhighschool

EricsHu
2022-12-05 068fc7f2e81178e55fa191a13709af64b1a163f6
src/main/java/com/qxueyou/scc/sys/utils/AudioUtil.java
@@ -15,7 +15,7 @@
    /**
     * 获取语音文件播放时长(秒) 支持wav 格式
     * 获取语音文件播放时长(秒) 支持wav 格式
     * @param filePath
     * @return
     */
@@ -39,7 +39,7 @@
    }
    /**
     * 获取mp3语音文件播放时长(秒) mp3
     * 获取mp3语音文件播放时长(秒) mp3
     * @param filePath
     * @return
     */
@@ -58,7 +58,7 @@
    /**
     * 获取mp3语音文件播放时长(秒)
     * 获取mp3语音文件播放时长(秒)
     * @param mp3File
     * @return
     */
@@ -77,21 +77,21 @@
    /**
     * 得到pcm文件的毫秒数
     * 得到pcm文件的毫秒数
     *
     * pcm文件音频时长计算
     * 同图像bmp文件一样,pcm文件保存的是未压缩的音频信息。 16bits 编码是指,每次采样的音频信息用2个字节保存。可以对比下bmp文件用分别用2个字节保存RGB颜色的信息。 16000采样率 是指 1秒钟采样 16000次。常见的音频是44100HZ,即一秒采样44100次。 单声道: 只有一个声道。
     * pcm文件音频时长计算
     * 同图像bmp文件一样,pcm文件保存的是未压缩的音频信息。 16bits 编码是指,每次采样的音频信息用2个字节保存。可以对比下bmp文件用分别用2个字节保存RGB颜色的信息。 16000采样率 是指 1秒钟采样 16000次。常见的音频是44100HZ,即一秒采样44100次。 单声道: 只有一个声道。
     *
     * 根据这些信息,我们可以计算: 1秒的16000采样率音频文件大小是 2*16000 = 32000字节 ,约为32K 1秒的8000采样率音频文件大小是 2*8000 = 16000字节 ,约为 16K
     * 根据这些信息,我们可以计算: 1秒的16000采样率音频文件大小是 2*16000 = 32000字节 ,约为32K 1秒的8000采样率音频文件大小是 2*8000 = 16000字节 ,约为 16K
     *
     * 如果已知录音时长,可以根据文件的大小计算采样率是否正常。
     * 如果已知录音时长,可以根据文件的大小计算采样率是否正常。
     * @param filePath
     * @return
     */
    public static long getPCMDurationMilliSecond(String filePath) {
        File file = new File(filePath);
        //得到多少秒
        //得到多少秒
        long second = file.length() / 32000 ;
        long milliSecond = Math.round((file.length() % 32000)   / 32000.0  * 1000 ) ;