rain
2024-07-10 3afaf1a21f47b6f9b46dd8e089e15e1e325c810a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.dji.sample.speak.service.serviceImpl;
 
import com.dji.sample.component.mqtt.service.IMessageSenderService;
import com.dji.sample.media.model.MinioPojo;
import com.dji.sample.media.service.impl.FileServiceImpl;
import com.dji.sample.speak.model.dto.PsdkModelDto;
import com.dji.sample.speak.model.dto.SpeakVoiceFileDto;
import com.dji.sample.speak.model.dto.SpeakVoiceStartDto;
import com.dji.sample.speak.model.dto.SpeakVolumeDto;
import com.dji.sample.speak.model.enums.VoiceEnums;
import com.dji.sample.speak.model.param.SpeakVoiceStartParam;
import com.dji.sample.speak.service.SpeakVoiceService;
import com.dji.sample.speak.util.MD5Util;
import lombok.extern.log4j.Log4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.io.File;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
 
@Service
 
public class SpeakVoiceServiceImpl implements SpeakVoiceService {
    @Autowired
    private IMessageSenderService messageSenderService;
    @Autowired
    private MinioPojo pojo;
    @Override
    public int takeVoice(String sn, SpeakVoiceStartParam param) {
        SpeakVoiceStartDto dto=new SpeakVoiceStartDto();
        SpeakVoiceFileDto fileDto=new SpeakVoiceFileDto();
        String url=upMinio(param.getFile(),param.getName());
        fileDto.setUrl(url);
        fileDto.setMd5(MD5Util.getMD5Checksum(param.getFile()));
        fileDto.setFormat(param.getFormat());
        fileDto.setName(param.getName());
        dto.setPsdkIndex(param.getPsdkIndex());
        return messageSenderService.publishServicesTopic(sn, VoiceEnums.SPEAKER_AUDIO_PLAY_START.getMethod(),param).getResult();
    }
 
    @Override
    public int restartVoice() {
        return 0;
    }
 
    @Override
    public int stopVoice() {
        return 0;
    }
 
    @Override
    public int setVoiceMode(PsdkModelDto dto) {
        return 0;
    }
 
    @Override
    public int setVoiceVolume(SpeakVolumeDto dto) {
        return 0;
    }
 
    public String upMinio(File file,String fileName){
        String endpoint = pojo.getEndpoint();
        String accessKey = pojo.getAccessKey();
        String secretKey = pojo.getSecretKey();
        String bucketName = pojo.getBucket();
        String objectName="/"+fileName+getNowTimeName();
        FileServiceImpl.uploadFile(endpoint,accessKey,secretKey,bucketName,objectName,file,"audio/mpeg");
        return endpoint+"/"+bucketName+objectName;
    }
    public static String getNowTimeName() {
        LocalDateTime currentTime = LocalDateTime.now();
        // 格式化时间,生成当前时间
        return currentTime.format(DateTimeFormatter.ofPattern("MMddHHmm"));
    }
}