feat(audio): migrate from ScriptProcessorNode to AudioWorkletNode for low-latency broadcasting

- Implemented `BroadcasterProcessor` for audio processing in a separate audio thread.
- Replaced deprecated `ScriptProcessorNode` with `AudioWorkletNode` in `startBroadcast`.
- Enhanced audio performance by reducing main thread interference and improving scalability.
- Added `broadcaster-processor.js` to handle custom audio processing logic.

This change ensures compatibility with modern browsers and improves broadcast audio quality.
This commit is contained in:
Raven Scott
2024-11-23 03:23:47 -05:00
parent f07b3fac56
commit d3e3e92f9b
3 changed files with 49 additions and 11 deletions

View File

@ -24,6 +24,18 @@
}
</style>
<script>
document.addEventListener('DOMContentLoaded', () => {
navigator.mediaDevices.getUserMedia({ audio: true })
.then(stream => {
// Handle audio stream here
console.log("Microphone access granted:", stream);
})
.catch(error => {
console.error("Microphone access denied:", error);
});
});
</script>
</head>
<body class="bg-dark text-light">
<div id="titlebar">
@ -31,6 +43,7 @@
</div>
<div class="container mt-5 text-center">
<h1>pearCast</h1>
<div id="retry-message-bar" class="alert alert-warning d-none" role="alert"></div>
<div id="setup" class="btn-group mt-4">
<button id="create-station" class="btn btn-primary">Create Station</button>
<button id="open-join-modal" class="btn btn-secondary" data-bs-toggle="modal" data-bs-target="#joinModal">Join Station</button>