ts-onvif
Version:
Client to ONVIF devices
75 lines • 2.4 kB
JavaScript
;
/**
* Replay ver10 module
* @author Andrew D.Laptev <a.d.laptev@gmail.com>
* @see https://www.onvif.org/ver10/replay.wsdl
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const service_1 = __importDefault(require("./service"));
const toOnvifXMLSchemaObject_1 = require("./utils/toOnvifXMLSchemaObject");
/**
* Replay service
*/
class Replay extends service_1.default {
constructor(onvif) {
super(onvif, 'replay');
}
static resolveStreamSetup(options) {
if (options.streamSetup) {
return options.streamSetup;
}
return {
stream: options.stream ?? 'RTP-Unicast',
transport: { protocol: options.protocol ?? 'RTSP' },
};
}
/**
* Returns the capabilities of the replay service.
*/
async getServiceCapabilities() {
const response = await this.request({
GetServiceCapabilities: {},
});
return response.getServiceCapabilitiesResponse?.capabilities ?? {};
}
/**
* Requests a URI that can be used to initiate playback of a recorded stream using RTSP.
* @param options
*/
async getReplayUri(options) {
const response = await this.request({
GetReplayUri: {
StreamSetup: (0, toOnvifXMLSchemaObject_1.streamSetupToBuild)(Replay.resolveStreamSetup(options)),
RecordingToken: options.recordingToken,
},
});
return response.getReplayUriResponse.uri;
}
/**
* Returns the current configuration of the replay service.
*/
async getReplayConfiguration() {
const response = await this.request({
GetReplayConfiguration: {},
});
return response.getReplayConfigurationResponse.configuration;
}
/**
* Changes the current configuration of the replay service.
* @param options
*/
async setReplayConfiguration({ configuration }) {
return this.request({
SetReplayConfiguration: {
Configuration: {
SessionTimeout: configuration.sessionTimeout,
},
},
});
}
}
exports.default = Replay;
//# sourceMappingURL=replay.js.map