You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.4 KiB
HTML
48 lines
1.4 KiB
HTML
7 years ago
|
<!DOCTYPE html>
|
||
|
<html lang="en">
|
||
|
<head>
|
||
|
<meta charset="UTF-8">
|
||
|
<title>Opus to PCM</title>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div id="container" style="width: 400px; margin: 0 auto; font-size: 30px;">
|
||
|
It should play audio if everying went well!
|
||
|
</div>
|
||
|
<script>
|
||
|
var orgSampleRate = 8000,
|
||
|
channels = 1,
|
||
|
configFlag = false;
|
||
|
|
||
|
var opsuToPCM = new OpusToPCM({
|
||
|
orgSampleRate: orgSampleRate,
|
||
|
channels: channels
|
||
|
});
|
||
|
|
||
|
var player = new PCMPlayer();
|
||
|
|
||
|
var ws = new WebSocket(this.url);
|
||
|
ws.addEventListener('message',function(event) {
|
||
|
var data = new Uint8Array(event.data);
|
||
|
opsuToPCM.decode(data).then(function(pcmData) {
|
||
|
|
||
|
/*
|
||
|
Sample rate in opus is not fixed.
|
||
|
It can vary depending on hardware rate. But
|
||
|
we need sample rate for playing PCM data using audio context,
|
||
|
so lets set sampelRate here returned by decoder.
|
||
|
*/
|
||
|
if (!configFlag) {
|
||
|
var samppleRate = opsuToPCM.getSampleRate();
|
||
|
player.setConfig(samppleRate, channels);
|
||
|
configFlag = true;
|
||
|
}
|
||
|
|
||
|
player.feed(pcmData);
|
||
|
});
|
||
|
});
|
||
|
</script>
|
||
|
<script type="text/javascript" src="dist/opus-to-pcm.js"></script>
|
||
|
<script type="text/javascript" src="player/pcm-player.js"></script>
|
||
|
</body>
|
||
|
</html>
|