Fixed an device error

This commit is contained in:
WolverinDEV 2020-02-09 21:37:26 +01:00
parent 1c9fb28cce
commit 35b8082a97
1 changed files with 18 additions and 17 deletions

View File

@ -292,18 +292,18 @@ export namespace _audio.recorder {
if(_device === this._current_device)
return;
const device = _device as NativeDevice; /* TODO: test for? */
this._current_device = _device;
try {
await new Promise(resolve => this.handle.set_device(this._current_device.unique_id, resolve));
await new Promise((resolve, reject) => {
this.handle.start(flag => {
if(typeof flag === "boolean" && flag)
resolve();
else
reject(typeof flag === "string" ? flag : "failed to start");
await new Promise(resolve => this.handle.set_device(this._current_device ? this._current_device.unique_id : undefined, resolve));
if(this._current_state !== audio.recorder.InputState.PAUSED && this._current_device)
await new Promise((resolve, reject) => {
this.handle.start(flag => {
if(typeof flag === "boolean" && flag)
resolve();
else
reject(typeof flag === "string" ? flag : "failed to start");
});
});
});
} catch(error) {
console.warn(tr("Failed to start playback on new input device (%o)"), error);
throw error;
@ -383,14 +383,15 @@ export namespace _audio.recorder {
this._current_state = audio.recorder.InputState.DRY;
try {
await new Promise((resolve, reject) => {
this.handle.start(flag => {
if(flag)
resolve();
else
reject("start failed");
if(this._current_device)
await new Promise((resolve, reject) => {
this.handle.start(flag => {
if(flag)
resolve();
else
reject("start failed");
});
});
});
for(const filter of this.filters)
if(filter.is_enabled())
filter.initialize();
@ -446,7 +447,7 @@ export namespace _audio.recorder {
this._filter.set_attack_smooth(.75);
this._filter.set_release_smooth(.75);
await new Promise(resolve => this._recorder.set_device(this._device.unique_id, resolve));
await new Promise(resolve => this._recorder.set_device(this._device ? this._device.unique_id : undefined, resolve));
await new Promise((resolve, reject) => {
this._recorder.start(flag => {
if(typeof flag === "boolean" && flag)