0

我正在使用 AWS 的 Chime JavaScript SDK,并且addDeviceChangeObserverAudioVideoFacade. 简而言之,当我的设备发生变化时,它似乎不会触发任何观察者方法。(即,当我拔下耳机时,没有观察者方法触发 - 但我确认我的设备不再列在系统设置中。)

这大致是我设置观察者时的样子:

import ChimeDeviceChangeObserver from '../chime/ChimeDeviceChangeObserver';
...
audioVideo.addDeviceChangeObserver(ChimeDeviceChangeObserver);

这是我的 ChimeDeviceChangeObserver 类:

export default class ChimeDeviceChangeObserver {

  audioOutputsChanged(freshAudioOutputDeviceList) {
    console.log('Output list changed', freshAudioOutputDeviceList);
  }

  audioInputsChanged(freshAudioInputDeviceList) { 
    console.log('Input list changed', freshAudioInputDeviceList);
  }

  videoInputsChanged(freshVideoInputDeviceList) {
    console.log('Video list changed', freshVideoInputDeviceList);
  }

}

当我拔下/重新插入我的设备时,没有任何观察者方法按预期记录。我已经仔细检查了我的观察者方法名称是否与AWS SDK docs匹配,并且不知道接下来要检查什么。

感谢您的任何帮助!

4

1 回答 1

1

好吧,尴尬的是,答案超级简单!

简单地说,在将 ChimeDeviceChangeObserver 实例传递给audioVideo.addDeviceChangeObserver().

在我有这条线之前: audioVideo.addDeviceChangeObserver(ChimeDeviceChangeObserver);

修复是:audioVideo.addDeviceChangeObserver(new ChimeDeviceChangeObserver());

实例化新类对象正确地将观察者类传递给 Chime 的 sdk,并且观察者方法现在正确触发。

于 2021-03-16T21:55:44.873 回答