@ashetm/ng-mediastream
Version:
``@ashetm/ng-mediastream`` is a library that simplify manipulation of API ``MediaStream``.
36 lines • 4.57 kB
JavaScript
import { BehaviorSubject } from "rxjs";
import { AMediastreamDevice } from "./mediastream-device.class";
export class AMediastreamService extends AMediastreamDevice {
get mediastreamConstraints() {
return this._mediaConstraints;
}
constructor(_mediaConstraints) {
super();
this._mediaConstraints = _mediaConstraints;
this._toggleMediaStreamSubject = new BehaviorSubject(true);
}
_buildMediaConstraints(device) {
switch (true) {
case device && typeof this._mediaConstraints === 'object':
return {
...this._mediaConstraints,
deviceId: device.deviceId
};
case device
&& typeof this._mediaConstraints === 'boolean'
&& this._mediaConstraints:
return {
deviceId: device.deviceId
};
case device
&& typeof this._mediaConstraints === 'boolean'
&& !this._mediaConstraints:
return this._mediaConstraints;
default:
return {
...this._mediaConstraints
};
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWFzdHJlYW0tc2VydmljZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc3RyZWFtL3NyYy9saWIvbWVkaWFzdHJlYW0tc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsa0JBQWtCO0lBT2xFLElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUNxQixpQkFBa0Q7UUFFckUsS0FBSyxFQUFFLENBQUM7UUFGVyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWlDO1FBUnBELDhCQUF5QixHQUN4QyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztJQVV2QyxDQUFDO0lBRVMsc0JBQXNCLENBQzlCLE1BQThCO1FBRTlCLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxNQUFNLElBQUksT0FBTyxJQUFJLENBQUMsaUJBQWlCLEtBQUssUUFBUTtnQkFDdkQsT0FBTztvQkFDTCxHQUFHLElBQUksQ0FBQyxpQkFBMEM7b0JBQ2xELFFBQVEsRUFBRyxNQUEwQixDQUFDLFFBQVE7aUJBQy9DLENBQUM7WUFDSixLQUFLLE1BQU07bUJBQ04sT0FBTyxJQUFJLENBQUMsaUJBQWlCLEtBQUssU0FBUzttQkFDekMsSUFBSSxDQUFDLGlCQUFpQjtnQkFDM0IsT0FBTztvQkFDTCxRQUFRLEVBQUcsTUFBMEIsQ0FBQyxRQUFRO2lCQUMvQyxDQUFDO1lBQ0osS0FBSyxNQUFNO21CQUNOLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVM7bUJBQ3pDLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtnQkFDNUIsT0FBTyxJQUFJLENBQUMsaUJBQTBCLENBQUM7WUFFekM7Z0JBQ0UsT0FBTztvQkFDTCxHQUFHLElBQUksQ0FBQyxpQkFBMEM7aUJBQ25ELENBQUM7U0FDTDtJQUNILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7IEFNZWRpYXN0cmVhbURldmljZSB9IGZyb20gXCIuL21lZGlhc3RyZWFtLWRldmljZS5jbGFzc1wiO1xuXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBTWVkaWFzdHJlYW1TZXJ2aWNlIGV4dGVuZHMgQU1lZGlhc3RyZWFtRGV2aWNlIHtcblxuICBhYnN0cmFjdCByZWFkb25seSBtZWRpYXN0cmVhbSQ6IE9ic2VydmFibGU8TWVkaWFTdHJlYW0+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfdG9nZ2xlTWVkaWFTdHJlYW1TdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj5cbiAgICA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgZ2V0IG1lZGlhc3RyZWFtQ29uc3RyYWludHMoKTogYm9vbGVhbiB8IE1lZGlhVHJhY2tDb25zdHJhaW50cyB7XG4gICAgcmV0dXJuIHRoaXMuX21lZGlhQ29uc3RyYWludHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX21lZGlhQ29uc3RyYWludHM6IGJvb2xlYW4gfCBNZWRpYVRyYWNrQ29uc3RyYWludHNcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfYnVpbGRNZWRpYUNvbnN0cmFpbnRzKFxuICAgIGRldmljZTogTWVkaWFEZXZpY2VJbmZvIHwgbnVsbFxuICApOiBib29sZWFuIHwgTWVkaWFUcmFja0NvbnN0cmFpbnRzIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgZGV2aWNlICYmIHR5cGVvZiB0aGlzLl9tZWRpYUNvbnN0cmFpbnRzID09PSAnb2JqZWN0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50aGlzLl9tZWRpYUNvbnN0cmFpbnRzIGFzIE1lZGlhVHJhY2tDb25zdHJhaW50cyxcbiAgICAgICAgICBkZXZpY2VJZDogKGRldmljZSBhcyBNZWRpYURldmljZUluZm8pLmRldmljZUlkXG4gICAgICAgIH07XG4gICAgICBjYXNlIGRldmljZVxuICAgICAgICAmJiB0eXBlb2YgdGhpcy5fbWVkaWFDb25zdHJhaW50cyA9PT0gJ2Jvb2xlYW4nXG4gICAgICAgICAgJiYgdGhpcy5fbWVkaWFDb25zdHJhaW50czpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkZXZpY2VJZDogKGRldmljZSBhcyBNZWRpYURldmljZUluZm8pLmRldmljZUlkXG4gICAgICAgIH07XG4gICAgICBjYXNlIGRldmljZVxuICAgICAgICAmJiB0eXBlb2YgdGhpcy5fbWVkaWFDb25zdHJhaW50cyA9PT0gJ2Jvb2xlYW4nXG4gICAgICAgICAgJiYgIXRoaXMuX21lZGlhQ29uc3RyYWludHM6XG4gICAgICAgIHJldHVybiB0aGlzLl9tZWRpYUNvbnN0cmFpbnRzIGFzIGZhbHNlO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnRoaXMuX21lZGlhQ29uc3RyYWludHMgYXMgTWVkaWFUcmFja0NvbnN0cmFpbnRzXG4gICAgICAgIH07XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==