|
|
@@ -11,8 +11,10 @@ import javax.sip.ResponseEvent;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.http.ResponseEntity;
|
|
|
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.context.request.async.DeferredResult;
|
|
|
|
|
|
@@ -104,6 +106,10 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
private ZLMHttpHookSubscribe subscribe;
|
|
|
|
|
|
|
|
|
+ @Qualifier("taskExecutor")
|
|
|
+ @Autowired
|
|
|
+ private ThreadPoolTaskExecutor taskExecutor;
|
|
|
+
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -135,21 +141,23 @@ public class PlayServiceImpl implements IPlayService {
|
|
|
|
|
|
result.onCompletion(()->{
|
|
|
// 点播结束时调用截图接口
|
|
|
- // TODO 应该在上流时调用更好,结束也可能是错误结束
|
|
|
- String path = "snap";
|
|
|
- String fileName = deviceId + "_" + channelId + ".jpg";
|
|
|
- ResponseEntity responseEntity = (ResponseEntity)result.getResult();
|
|
|
- if (responseEntity != null && responseEntity.getStatusCode() == HttpStatus.OK) {
|
|
|
- WVPResult wvpResult = (WVPResult)responseEntity.getBody();
|
|
|
- if (Objects.requireNonNull(wvpResult).getCode() == 0) {
|
|
|
- StreamInfo streamInfoForSuccess = (StreamInfo)wvpResult.getData();
|
|
|
- MediaServerItem mediaInfo = mediaServerService.getOne(streamInfoForSuccess.getMediaServerId());
|
|
|
- String streamUrl = streamInfoForSuccess.getFmp4();
|
|
|
- // 请求截图
|
|
|
- logger.info("[请求截图]: " + fileName);
|
|
|
- zlmresTfulUtils.getSnap(mediaInfo, streamUrl, 15, 1, path, fileName);
|
|
|
+ taskExecutor.execute(()->{
|
|
|
+ // TODO 应该在上流时调用更好,结束也可能是错误结束
|
|
|
+ String path = "snap";
|
|
|
+ String fileName = deviceId + "_" + channelId + ".jpg";
|
|
|
+ ResponseEntity responseEntity = (ResponseEntity)result.getResult();
|
|
|
+ if (responseEntity != null && responseEntity.getStatusCode() == HttpStatus.OK) {
|
|
|
+ WVPResult wvpResult = (WVPResult)responseEntity.getBody();
|
|
|
+ if (Objects.requireNonNull(wvpResult).getCode() == 0) {
|
|
|
+ StreamInfo streamInfoForSuccess = (StreamInfo)wvpResult.getData();
|
|
|
+ MediaServerItem mediaInfo = mediaServerService.getOne(streamInfoForSuccess.getMediaServerId());
|
|
|
+ String streamUrl = streamInfoForSuccess.getFmp4();
|
|
|
+ // 请求截图
|
|
|
+ logger.info("[请求截图]: " + fileName);
|
|
|
+ zlmresTfulUtils.getSnap(mediaInfo, streamUrl, 15, 1, path, fileName);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+ });
|
|
|
});
|
|
|
if (streamInfo != null) {
|
|
|
String streamId = streamInfo.getStream();
|