UNPKG

@ashetm/ng-mediastream

Version:

``@ashetm/ng-mediastream`` is a library that simplify manipulation of API ``MediaStream``.

28 lines 3.96 kB
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==