package com.ard.zlm.service.impl; import com.ard.common.core.enums.LiveStreamType; import com.ard.qs.api.domain.QsDevice; import com.ard.zlm.api.domain.StreamInfo; import com.ard.zlm.service.ErrorCallback; import com.ard.zlm.service.IDevicePlayService; import com.ard.zlm.service.ISourcePlayService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Map; /** * @FileName DevicePlayServiceImpl * @Description * @Author fengcheng * @date 2026-04-12 **/ @Slf4j @Service public class DevicePlayServiceImpl implements IDevicePlayService { @Autowired private Map sourcePlayServiceMap; public final static String PLAY_SERVICE = "sourceDevicePlayService"; @Override public void play(QsDevice device, Boolean record, ErrorCallback callback) { log.info("[设备] 播放, 类型: {}", LiveStreamType.getByCode(device.getType())); ISourcePlayService sourceChannelPlayService = sourcePlayServiceMap.get(PLAY_SERVICE); if (sourceChannelPlayService == null) { // 设备数据异常 log.error("[点播通用设备] 类型编号: {} 不支持实时流预览", LiveStreamType.getByCode(device.getType())); throw new RuntimeException("Device not supported"); } sourceChannelPlayService.play(device, record, (code, msg, data) -> { callback.run(code, msg, data); }); } }