Browse Source

Merge pull request #34 from lawrencehj/wvp-28181-2.0

解决非默认端口无法Send Bye的问题
pull/38/head
648540858 4 years ago
committed by GitHub
parent
commit
9de1bef821
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
  2. 4
      src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
  3. 8
      web_src/src/components/gb28181/devicePlayer.vue

12
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java

@ -409,12 +409,7 @@ public class SIPCommander implements ISIPCommander {
try {
MediaServerConfig mediaInfo = redisCatchStorage.getMediaInfo();
String ssrc = streamSession.createPlayBackSsrc();
String streamId = null;
if (rtpEnable) {
streamId = String.format("gb_playback_%s_%s", device.getDeviceId(), channelId);
}else {
streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase();
}
String streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase();
// 添加订阅
JSONObject subscribeKey = new JSONObject();
subscribeKey.put("app", "rtp");
@ -531,7 +526,10 @@ public class SIPCommander implements ISIPCommander {
Pattern p = Pattern.compile("(\\d+\\.\\d+\\.\\d+\\.\\d+)\\:(\\d+)");
Matcher matcher = p.matcher(vh);
if (matcher.find()) {
byeURI.setHost(matcher.group(1));
String ip = matcher.group(1);
byeURI.setHost(ip);
String port = matcher.group(2);
byeURI.setPort(Integer.parseInt(port));
}
ViaHeader viaHeader = (ViaHeader) byeRequest.getHeader(ViaHeader.NAME);
String protocol = viaHeader.getTransport().toUpperCase();

4
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java

@ -342,7 +342,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
try {
// 回复200 OK
responseAck(evt);
String seqNo = String.valueOf(System.currentTimeMillis());
String uuid = UUID.randomUUID().toString().replace("-", "");
RecordInfo recordInfo = new RecordInfo();
Element rootElement = getRootElement(evt);
Element deviceIdElement = rootElement.element("DeviceID");
@ -398,7 +398,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
// 为防止连续请求该设备的录像数据,返回数据错乱,特增加sn进行区分
String cacheKey = CACHE_RECORDINFO_KEY + deviceId + sn;
redis.set(cacheKey + "_" + seqNo, recordList, 90);
redis.set(cacheKey + "_" + uuid, recordList, 90);
List<Object> cacheKeys = redis.scan(cacheKey + "_*");
List<RecordItem> totalRecordList = new ArrayList<RecordItem>();
for (int i = 0; i < cacheKeys.size(); i++) {

8
web_src/src/components/gb28181/devicePlayer.vue

@ -183,7 +183,8 @@ export default {
scanGroup: 0,
tracks: [],
coverPlaying:false,
tracksLoading: false
tracksLoading: false,
recordPlay: ""
};
},
methods: {
@ -318,6 +319,10 @@ export default {
this.convertStop();
}
this.convertKey = ''
if (this.recordPlay != '') {
this.stopPlayRecord();
}
this.recordPlay = ''
},
copySharedInfo: function (data) {
@ -384,6 +389,7 @@ export default {
var streamInfo = res.data;
that.streamId = streamInfo.streamId;
that.videoUrl = streamInfo.ws_flv;
that.recordPlay = true;
});
}
},

Loading…
Cancel
Save