Procházet zdrojové kódy

喇叭多播放次数接口添加 2023-02-09

donggaosheng před 2 roky
rodič
revize
85aa8954cf

+ 30 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/controller/SpeakerController.java

@@ -200,8 +200,10 @@ public class SpeakerController {
     }
 
 
-    /***
-     * 文字转语音播放
+    /**
+     * 语音播放
+     * @param text 播放音乐路径
+     * @param playVo 播放实体
      * @return
      */
     @PostMapping("/textParseUrlAppIps")
@@ -212,7 +214,31 @@ public class SpeakerController {
         }
         text=text.replace("https","http");
         text=text.replace("http://lab.sxitdlc.com/sudalabSystem/","http://10.20.10.7/labSystem/");
-        iSpeakerService.textParseVoiceAppIps(text,playVo);
+        iSpeakerService.textParseVoiceAppIps(text,playVo,1);
+        Map<String,Object> map=new HashMap<>();
+        map.put("text",text);
+        String date=DateUtils.parseDateToStr("HH:MM",new Date());
+        map.put("date",date);
+        return AjaxResult.success(map);
+    }
+
+
+    /**
+     * 语音播放
+     * @param text 播放音乐路径
+     * @param playVo 播放实体
+     * @param playNum 播放次数
+     * @return
+     */
+    @PostMapping("/textParseUrlAppIps")
+    @ApiOperation(value = "文字转语音小程序播放地址", notes = "文字转语音小程序播放地址")
+    public AjaxResult textParseUrlAppIps(@RequestParam(required = true) String text,@RequestBody List<PlayVo> playVo,Integer playNum) {
+        if(StringUtils.isEmpty(text) || playVo.size()==0){
+            return AjaxResult.error("参数有误,请检查参数!");
+        }
+        text=text.replace("https","http");
+        text=text.replace("http://lab.sxitdlc.com/sudalabSystem/","http://10.20.10.7/labSystem/");
+        iSpeakerService.textParseVoiceAppIps(text,playVo,playNum);
         Map<String,Object> map=new HashMap<>();
         map.put("text",text);
         String date=DateUtils.parseDateToStr("HH:MM",new Date());
@@ -220,6 +246,7 @@ public class SpeakerController {
         return AjaxResult.success(map);
     }
 
+
     /**
      * 停止播放
      * @param sn

+ 1 - 1
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/service/ISpeakerService.java

@@ -90,7 +90,7 @@ public interface ISpeakerService {
      * @param playVo
      * @return
      */
-    void textParseVoiceAppIps(String texts, List<PlayVo> playVo);
+    void textParseVoiceAppIps(String texts, List<PlayVo> playVo,Integer playNum);
 
     /**
      * 文字转硬盘播放

+ 34 - 20
zd-modules/zd-algorithm/src/main/java/com/zd/alg/speaker/service/impl/SpeakerServiceImpl.java

@@ -174,26 +174,15 @@ public class SpeakerServiceImpl implements ISpeakerService {
     }
 
     @Override
-    public void textParseVoiceAppIps(String texts,List<PlayVo> playVoList) {
+    public void textParseVoiceAppIps(String texts,List<PlayVo> playVoList,Integer playNum) {
         if (playVoList.size() == 1) {
-            commonTextUrlVoice(texts, playVoList);
+            commonTextUrlVoice(texts, playVoList,playNum);
         } else {
-            PlayBatchVo playBatchVo = new PlayBatchVo();
-            BeanUtils.copyProperties(playVoList.get(0), playBatchVo);
-            List<UrlVo> urlVoList = getUrlList(texts);
-            if (null != playBatchVo.getParams()) {
-                playBatchVo.getParams().setTid(UUID.randomUUID().toString());
-                playBatchVo.getParams().setUrls(urlVoList);
-            }
-            List<String> snsList = new ArrayList<>();
-            for (PlayVo playVo : playVoList) {
-                snsList.add(playVo.getSn());
-            }
             String deviceIp =playVoList.get(0).getDeviceIp();
-            playBatchVo.setSns(snsList.toArray(new String[snsList.size()]));
+            PlayBatchVo playBatchVo=commonPatchTextUrlVoice(texts,playVoList,playNum);
             boolean isTrue = invokePost(JSONObject.toJSON(playBatchVo).toString(), deviceIp,1, playVoList.get(0).getPort());
             if (isTrue) {
-                textParseVoiceAppIps(texts,playVoList);
+                textParseVoiceAppIps(texts,playVoList,playNum);
             }
         }
     }
@@ -231,10 +220,12 @@ public class SpeakerServiceImpl implements ISpeakerService {
         return false;
     }
 
-    private List<UrlVo> getUrlList(String texts) {
+    private List<UrlVo> getUrlList(String texts,Integer playNum) {
         List<UrlVo> urlVoList = new ArrayList<>();
-        UrlVo urlVo = new UrlVo(texts.substring(0, 1), texts);
-        urlVoList.add(urlVo);
+        for(int i=0;i<playNum;i++){
+            UrlVo urlVo = new UrlVo(texts.substring(0, 1), texts);
+            urlVoList.add(urlVo);
+        }
         return urlVoList;
     }
 
@@ -275,10 +266,10 @@ public class SpeakerServiceImpl implements ISpeakerService {
      * @param texts
      * @param playVoList
      */
-    private void commonTextUrlVoice(String texts,List<PlayVo> playVoList) {
+    private void commonTextUrlVoice(String texts,List<PlayVo> playVoList,Integer playNum) {
         for (PlayVo play : playVoList) {
             String deviceIp=play.getDeviceIp();
-            List<UrlVo> urlVoList = getUrlList(texts);
+            List<UrlVo> urlVoList = getUrlList(texts,playNum);
             if (null != play.getParams()) {
                 play.getParams().setTid(UUID.randomUUID().toString());
                 play.getParams().setUrls(urlVoList);
@@ -291,6 +282,29 @@ public class SpeakerServiceImpl implements ISpeakerService {
         }
     }
 
+
+    /**
+     * 公共的语音路径播放
+     * commonTextUrlVoice
+     * @param texts
+     * @param playVoList
+     */
+    private PlayBatchVo commonPatchTextUrlVoice(String texts,List<PlayVo> playVoList,Integer playNum) {
+        PlayBatchVo playBatchVo = new PlayBatchVo();
+        BeanUtils.copyProperties(playVoList.get(0), playBatchVo);
+        List<UrlVo> urlVoList = getUrlList(texts,playNum);
+        if (null != playBatchVo.getParams()) {
+            playBatchVo.getParams().setTid(UUID.randomUUID().toString());
+            playBatchVo.getParams().setUrls(urlVoList);
+        }
+        List<String> snsList = new ArrayList<>();
+        for (PlayVo playVo : playVoList) {
+            snsList.add(playVo.getSn());
+        }
+        playBatchVo.setSns(snsList.toArray(new String[snsList.size()]));
+        return playBatchVo;
+    }
+
     /**
      * @param body
      * @param type 0是单个,1是批量