odyssey-spatial-comms
Version:
Drop-in replacement for Dolby/Voxeet SDK using Odyssey Spatial Audio Service
71 lines (57 loc) • 1.92 kB
text/typescript
import SpatialCommsSDK, { SpatialAudioStyle } from '../src/index';
// Configure the Spatial Communications SDK (our native API)
SpatialCommsSDK.configure({
serviceUrl: 'https://your-spatial-audio-service.com'
});
// Initialize with access token (native SpatialComms method)
const accessToken = 'your-jwt-token';
SpatialCommsSDK.initialize(accessToken, async () => {
// Refresh token callback
return 'new-jwt-token';
});
async function joinConference() {
try {
// Open session (SpatialComms native API)
await SpatialCommsSDK.session.open({
name: 'John Doe',
externalId: 'user-123',
avatarUrl: 'https://example.com/avatar.jpg'
});
// Create conference (SpatialComms native API)
const conference = await SpatialCommsSDK.conference.create({
alias: 'my-conference-room',
params: {
spatialAudioStyle: SpatialAudioStyle.INDIVIDUAL
}
});
// Join conference
await SpatialCommsSDK.conference.join(conference, {
participantInfo: {
name: 'John Doe',
externalId: 'user-123'
}
});
// Start audio
await SpatialCommsSDK.audio.local.start();
// Set spatial position (enhanced 3D)
SpatialCommsSDK.conference.setSpatialPosition(
SpatialCommsSDK.session.participant!,
{ x: 0, y: 0, z: 0 }
);
console.log('Successfully joined conference with SpatialComms SDK!');
} catch (error) {
console.error('Conference join failed:', error);
}
}
// Event listeners (SpatialComms native API)
SpatialCommsSDK.conference.on('participantJoined', (participant) => {
console.log('Participant joined:', participant);
});
SpatialCommsSDK.conference.on('participantLeft', (participant) => {
console.log('Participant left:', participant);
});
SpatialCommsSDK.conference.on('streamAdded', (stream) => {
console.log('Stream added:', stream);
});
// Start the demo
joinConference();