Посмотрите 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>
Надежда на помощь!