Switching to direct encoding (RPi4)
This commit is contained in:
@@ -50,7 +50,7 @@ async function createAudioInstance() {
|
||||
// Create an instance of AudioIO with outOptions (defaults are as below), which will return a WritableStream
|
||||
return new alsaInstance({
|
||||
channels: 2,
|
||||
format: "S16_BE",
|
||||
format: "U8",
|
||||
rate: 48000,
|
||||
device: selectedDevice.name ?? "default", // Omit the deviceId to select the default device
|
||||
periodSize: 100, //(48000 / 1000) * 20, //(48000 * 16 * 2) / 1000 * 20 // (48000 * (16 / 8) * 2) / 60 / 1000 * 20 //0.025 * 48000 / 2
|
||||
|
||||
@@ -3,13 +3,14 @@ const { DebugBuilder } = require("../utilities/debugBuilder.js");
|
||||
const log = new DebugBuilder("client-bot", "commandController");
|
||||
// Modules
|
||||
const { joinVoiceChannel, VoiceConnectionStatus, getVoiceConnection } = require("@discordjs/voice");
|
||||
const { OpusEncoder } = require("@discordjs/opus");
|
||||
//const { OpusEncoder } = require("@discordjs/opus");
|
||||
// Utilities
|
||||
const {replyToInteraction} = require("../utilities/messageHandler.js");
|
||||
const {createAudioInstance} = require("../controllers/audioController.js");
|
||||
const { encode } = require("../utilities/arm64-linux.node");
|
||||
|
||||
// Declare the encoder
|
||||
const encoder = new OpusEncoder(48000, 2);
|
||||
//const encoder = new OpusEncoder(48000, 2);
|
||||
|
||||
/**
|
||||
* Join the specified voice channel
|
||||
@@ -42,8 +43,9 @@ exports.join = async function join({interaction= undefined, guildID= undefined,
|
||||
const audioInstance = await createAudioInstance();
|
||||
|
||||
audioInstance.on('audio', (buffer) => {
|
||||
buffer = Buffer.from(buffer);
|
||||
log.DEBUG("Audio buffer: ", buffer);
|
||||
const encoded = encoder.encode(buffer);
|
||||
const encoded = encode(buffer);
|
||||
log.DEBUG("Encoded packet: ", encoded);
|
||||
// TODO Add a function here to check the volume of either buffer and only play audio to discord when there is audio to be played
|
||||
voiceConnection.playOpusPacket(encoded);
|
||||
|
||||
BIN
Client/utilities/arm64-linux.node
Normal file
BIN
Client/utilities/arm64-linux.node
Normal file
Binary file not shown.
Reference in New Issue
Block a user