Нужен контроль над аудиопотоком в чате - PullRequest
0 голосов
/ 25 февраля 2020

Есть ли способ приостановить и воспроизвести аудиовыход из пользовательской конечной точки речи.

1 Ответ

0 голосов
/ 26 февраля 2020

Посмотрите BotFramework-WebChat Действия , в частности startDictate, startSpeakingActivity, stopDictate и stopSpeakingActivity. Эти действия доступны через онлайн-хранилище веб-чата и обеспечат вам некоторый контроль над воспроизведением аудио (я только говорю «некоторые», поскольку я не играл с ними широко, поэтому я не могу говорить полностью о их).

Однако эти действия относительно легко прикрепить к действиям / событиям веб-чата или к взаимодействию пользователей на странице хостинга (например, нажатие кнопки или какое-либо другое). В репозитории Web Chat можно найти примеров , которые помогут вам при настройке.

Короче говоря, ваш код может выглядеть примерно так, как показано ниже. В этом примере демонстрируется действие «stopDictate», выполняемое через прослушиватель событий, который запускается, когда веб-чат получает указанное c входящее событие от бота или пользователя.

<script>
  (async function() => {

    const store = ({ dispatch }) => action => next => {
      if (action.type === 'DIRECT_LINE/INCOMING_ACTIVITY') {
        const { activity } = action.payload;
        if (activity.type === 'event' && activity.name === 'sendStopeDictateEvt') {
          const stopDictateEvent = new Event( 'StopDictateEvent' );
          window.dispatchEvent( stopDictateEvent );
        }
      }
      return next( action );
    };

    [...]

    window.ReactDOM.render(
      <ReactWebChat
        directLine={ window.WebChat.createDirectLine({ token }) }
        store={ store }
      />,
      document.getElementById( 'webchat' )
    );
  } );

  window.addEventListener('StopDictateEvent', () => {
    store.dispatch({
      type: 'WEB_CHAT/STOP_DICTATE'
    });
  });
</script>

Надежда на помощь!

...