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