@ashetm/ng-mediastream
Version:
``@ashetm/ng-mediastream`` is a library that simplify manipulation of API ``MediaStream``.
28 lines • 3.96 kB
JavaScript
import { combineLatest, from } from "rxjs";
import { switchMap } from "rxjs/operators";
import { AMediastreamService } from "./mediastream-service.class";
export class AMediastreamCameraService extends AMediastreamService {
constructor() {
super(...arguments);
this._userMedia$ = combineLatest([
this._currentMediaDeviceSubject$
]).pipe(switchMap(([device]) => from(this.MEDIA_DEVICES.getUserMedia({
audio: false,
video: this._buildMediaConstraints(device)
}))));
}
disableCamera() {
this._toggleMediaStreamSubject.next(false);
}
enableCamera() {
this._toggleMediaStreamSubject.next(true);
}
toggleCamera() {
const value = this._toggleMediaStreamSubject.getValue();
this._toggleMediaStreamSubject.next(!value);
}
updateCameraDevice(device) {
this._currentMediaDeviceSubject$.next(device);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWFzdHJlYW0tY2FtZXJhLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXN0cmVhbS9zcmMvbGliL21lZGlhc3RyZWFtLWNhbWVyYS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdsRSxNQUFNLE9BQWdCLHlCQUNwQixTQUFRLG1CQUFtQjtJQUQ3Qjs7UUFJcUIsZ0JBQVcsR0FDMUIsYUFBYSxDQUFDO1lBQ2QsSUFBSSxDQUFDLDJCQUEyQjtTQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFvQixFQUFFLEVBQUUsQ0FDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ25DLEtBQUssRUFBRSxLQUFLO1lBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7U0FDM0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBc0JaLENBQUM7SUFwQkMsYUFBYTtRQUNYLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxLQUFLLEdBQVksSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsa0JBQWtCLENBQ2hCLE1BQXNEO1FBRXRELElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgSU1lZGlhc3RyZWFtQ2FtZXJhU2VydmljZSB9IGZyb20gXCIuL21lZGlhc3RyZWFtLWNhbWVyYS1zZXJ2aWNlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgQU1lZGlhc3RyZWFtU2VydmljZSB9IGZyb20gXCIuL21lZGlhc3RyZWFtLXNlcnZpY2UuY2xhc3NcIjtcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQU1lZGlhc3RyZWFtQ2FtZXJhU2VydmljZVxuICBleHRlbmRzIEFNZWRpYXN0cmVhbVNlcnZpY2VcbiAgaW1wbGVtZW50cyBJTWVkaWFzdHJlYW1DYW1lcmFTZXJ2aWNlIHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3VzZXJNZWRpYSQ6IE9ic2VydmFibGU8TWVkaWFTdHJlYW0+XG4gICAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX2N1cnJlbnRNZWRpYURldmljZVN1YmplY3QkXG4gICAgXSkucGlwZShzd2l0Y2hNYXAoKFtkZXZpY2VdOiBbTWVkaWFEZXZpY2VJbmZvXSkgPT5cbiAgICAgIGZyb20odGhpcy5NRURJQV9ERVZJQ0VTLmdldFVzZXJNZWRpYSh7XG4gICAgICAgIGF1ZGlvOiBmYWxzZSxcbiAgICAgICAgdmlkZW86IHRoaXMuX2J1aWxkTWVkaWFDb25zdHJhaW50cyhkZXZpY2UpXG4gICAgICB9KSkpKTtcblxuICBkaXNhYmxlQ2FtZXJhKCk6IHZvaWQge1xuICAgIHRoaXMuX3RvZ2dsZU1lZGlhU3RyZWFtU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIGVuYWJsZUNhbWVyYSgpOiB2b2lkIHtcbiAgICB0aGlzLl90b2dnbGVNZWRpYVN0cmVhbVN1YmplY3QubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHRvZ2dsZUNhbWVyYSgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZTogYm9vbGVhbiA9IHRoaXMuX3RvZ2dsZU1lZGlhU3RyZWFtU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgdGhpcy5fdG9nZ2xlTWVkaWFTdHJlYW1TdWJqZWN0Lm5leHQoIXZhbHVlKTtcbiAgfVxuXG4gIHVwZGF0ZUNhbWVyYURldmljZShcbiAgICBkZXZpY2U6IE1lZGlhRGV2aWNlSW5mbyAmIFJlY29yZDwna2luZCcsICd2aWRlb2lucHV0Jz5cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fY3VycmVudE1lZGlhRGV2aWNlU3ViamVjdCQubmV4dChkZXZpY2UpO1xuICB9XG5cbn1cbiJdfQ==