MCPcopy Create free account
hub / github.com/FlowiseAI/Flowise / handleTTSEnd

Function handleTTSEnd

packages/ui/src/views/chatmessage/ChatMessage.jsx:2060–2109  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2058 }
2059
2060 const handleTTSEnd = () => {
2061 setTtsStreamingState((prevState) => {
2062 if (prevState.mediaSource && prevState.mediaSource.readyState === 'open') {
2063 try {
2064 if (prevState.sourceBuffer && prevState.chunkQueue.length > 0 && !prevState.sourceBuffer.updating) {
2065 const remainingChunks = [...prevState.chunkQueue]
2066 remainingChunks.forEach((chunk, index) => {
2067 setTimeout(() => {
2068 if (prevState.sourceBuffer && !prevState.sourceBuffer.updating) {
2069 try {
2070 prevState.sourceBuffer.appendBuffer(chunk)
2071 if (index === remainingChunks.length - 1) {
2072 setTimeout(() => {
2073 if (prevState.mediaSource && prevState.mediaSource.readyState === 'open') {
2074 prevState.mediaSource.endOfStream()
2075 }
2076 }, 100)
2077 }
2078 } catch (error) {
2079 console.error('Error appending remaining chunk:', error)
2080 }
2081 }
2082 }, index * 50)
2083 })
2084 return {
2085 ...prevState,
2086 chunkQueue: []
2087 }
2088 }
2089
2090 if (prevState.sourceBuffer && !prevState.sourceBuffer.updating) {
2091 prevState.mediaSource.endOfStream()
2092 } else if (prevState.sourceBuffer) {
2093 prevState.sourceBuffer.addEventListener(
2094 'updateend',
2095 () => {
2096 if (prevState.mediaSource && prevState.mediaSource.readyState === 'open') {
2097 prevState.mediaSource.endOfStream()
2098 }
2099 },
2100 { once: true }
2101 )
2102 }
2103 } catch (error) {
2104 console.error('Error ending TTS stream:', error)
2105 }
2106 }
2107 return prevState
2108 })
2109 }
2110
2111 const handleTTSAbort = (data) => {
2112 const messageId = data.chatMessageId

Callers 2

onmessageFunction · 0.85
handleTTSClickFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected