Untitled
unknown
plain_text
2 years ago
2.2 kB
14
Indexable
<!DOCTYPE html>
<html>
<head>
<title>Voice Chat</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<h1>Voice Chat</h1>
<div id="call">
<div id="status"></div>
<div id="audio-grid"></div>
</div>
<script>
$(document).ready(function() {
var socket = io();
socket.on('connect', function() {
var username = prompt('Enter your username:');
var room = prompt('Enter the call room name:');
socket.emit('join', {'username': username, 'room': room});
});
socket.on('status', function(data) {
$('#status').text(data.msg);
});
navigator.mediaDevices.getUserMedia({ audio: true })
.then(function(stream) {
var audioContext = new AudioContext();
var audioSource = audioContext.createMediaStreamSource(stream);
var audioProcessor = audioContext.createScriptProcessor(1024, 1, 1);
audioProcessor.onaudioprocess = function(event) {
var audioData = event.inputBuffer.getChannelData(0);
socket.emit('audio', {'username': username, 'room': room, 'audio': audioData});
};
audioSource.connect(audioProcessor);
audioProcessor.connect(audioContext.destination);
})
.catch(function(error) {
console.log('Error accessing microphone:', error);
});
socket.on('audio', function(data) {
var username = data.username;
var audioData = data.audio;
// Process and play the received audio data
// ...
});
$(window).on('beforeunload', function() {
socket.emit('leave');
});
});
</script>
</body>
</html>Editor is loading...