rain
2024-07-31 22c71b441fd63fbaa240552e82d557e23cfffc00
src/main/java/com/dji/sample/speak/service/serviceImpl/SpeakVoiceServiceImpl.java
@@ -54,9 +54,9 @@
        fileDto.setName(name);
        dto.setPsdk_index(psdk_index);
        dto.setFile(fileDto);
//        double time = getAudioDuration(file);
        double time = getAudioDuration(file);
        voiceEntity.setMd5(md5);
//        voiceEntity.setSecond(time);
        voiceEntity.setSecond(time);
        voiceEntity.setUrl(url);
        voiceEntity.setName(name);
        voiceMapper.insert(voiceEntity);
@@ -121,7 +121,7 @@
        String accessKey = pojo.getAccessKey();
        String secretKey = pojo.getSecretKey();
        String bucketName = pojo.getBucket();
        String objectName = "/" + fileName + getNowTimeName()+"pcm";
        String objectName = "/" + fileName + getNowTimeName();
        FileServiceImpl.uploadFile(endpoint, accessKey, secretKey, bucketName, objectName, file, "audio/mpeg");
        return endpoint + "/" + bucketName + objectName;
    }
@@ -132,12 +132,16 @@
        return currentTime.format(DateTimeFormatter.ofPattern("MMddHHmm"));
    }
//    public static double getAudioDuration(File file) throws UnsupportedAudioFileException, IOException {
//        AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
//        AudioFormat format = audioInputStream.getFormat();
//        long audioFileLength = file.length();
//        int frameSize = format.getFrameSize();
//        float frameRate = format.getFrameRate();
//        return Math.round(audioFileLength / (frameSize * frameRate));
//    }
    public static double getAudioDuration(File file) {
        try {
            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
            AudioFormat format = audioInputStream.getFormat();
            long audioFileLength = file.length();
            int frameSize = format.getFrameSize();
            float frameRate = format.getFrameRate();
            return Math.round(audioFileLength / (frameSize * frameRate));
        }catch (Exception e){
            return 0.0;
        }
    }
}