跳至主要內容

voice.off()

off() 方法會移除先前以 on() 方法註冊的事件監聽器。對於具備實時語音功能並長時間運行的應用程式,此方法特別有助清理資源及避免記憶體洩漏。

使用範例
使用範例 的直接連結

import { OpenAIRealtimeVoice } from '@mastra/voice-openai-realtime'
import chalk from 'chalk'

// Initialize a real-time voice provider
const voice = new OpenAIRealtimeVoice({
realtimeConfig: {
model: 'gpt-5.1-realtime',
apiKey: process.env.OPENAI_API_KEY,
},
})

// Connect to the real-time service
await voice.connect()

// Define the callback function
const writingCallback = ({ text, role }) => {
if (role === 'user') {
process.stdout.write(chalk.green(text))
} else {
process.stdout.write(chalk.blue(text))
}
}

// Register event listener
voice.on('writing', writingCallback)

// Later, when you want to remove the listener
voice.off('writing', writingCallback)

參數
參數 的直接連結


event:

string
要停止監聽的事件名稱(例如 'speaking'、'writing'、'error')

callback:

function
傳遞至 on() 的同一個回呼函數

傳回值
傳回值 的直接連結

此方法沒有傳回值。

注意事項
注意事項 的直接連結

  • 傳遞至 off() 的 callback 必須與傳遞至 on() 的函數參照相同
  • 如找不到 callback,此方法不會有任何作用
  • 此方法主要用於支援事件式通訊的實時 voice provider
  • 如在不支援事件的 voice provider 上呼叫此方法,系統會記錄警告,而不會執行任何操作
  • 移除事件監聽器對避免長時間運行的應用程式出現記憶體洩漏十分重要