Discussions
How to handle session?
12 days ago by Stalin Raj
When I end the session and again when I start the session, am getting this error:
Api: https://api.heygen.com/v1/streaming.start
Response: {
"code": 10005,
"message": "session state wrong: closed"
}
Below are my logic's for start and end session.
const handleStartSession = async () => {
if (!videoEl) {
console.error("Video element not found.");
return;
}
try {
setLoading(true);
const accessToken = await fetchAccessToken();
const avatar = new StreamingAvatar({ token: accessToken });
avatarRef.current = avatar;
const sessionData = await avatar.createStartAvatar({
avatarName: avatarName,
quality: "high",
language: language,
});
setSessionId(sessionData.session_id);
avatar.on(StreamingEvents.STREAM_READY, handleStreamReady);
avatar.on(StreamingEvents.STREAM_DISCONNECTED, handleStreamDisconnected);
avatar.on(StreamingEvents.USER_STOP, () => {
setVoiceStatus("Processing...");
});
avatar.on(StreamingEvents.AVATAR_TALKING_MESSAGE, (message) => {
console.log("avatar message", message)
handleAvatarMessage(message);
});
avatar.on(StreamingEvents.USER_TALKING_MESSAGE, (message) => {
console.log("user talking message", message)
handleVoiceMessage(message);
});
} catch (error) {
console.error("Error starting session:", error);
setLoading(false);
}
};
const handleEndSession = async () => {
const avatar = avatarRef.current;
if (avatar) {
await avatar.stopAvatar();
if (videoEl) videoEl.srcObject = null;
setSessionId("");
}
};