[Feature] Server side recording
eDexiam opened this issue · 3 comments
An ability to record voice chat activity using a command, and at all times with using a config option would be useful for moderation purposes.
My idea on how the file structure for recordings should look
PlasmoVoice (Plugin Folder)
-> Voice_Recordings
-> Player_Username / UUID
-> DateTime_of_login-DateTime_of_logout
Additionally an option to delete voice recordings after a specific amount of time would be useful as well as a way to select the quality of these voice recording in order to not waste disk space.
NOTE: Each paragraph is a new edit.
With a look through the code, the could actually be difficult, as the server never loads the audio data itself, rather it just forwards the data directly to nearby players.
I think it would be better—easier even— to implement this feature as an external plugin, but then I'm not considering Fabric and Forge servers.
The reason why I think it would be better as a separate plugin/mod is because decoding and storing the audio data could potentially add significant (libopus) dependencies to the server, which previously did not exist.
It would definitely require libopus on the server in order to do anything fancy, such as inserting audio gaps where there was no speaking, and playing audio from nearby players.
Turns out that audio over the network and audio on files are very different animals. This could be very difficult to pull off.
Also turns out that this would be very easy to do client-side as most of the necessary machinery is already in-place. However, on the server-side, it's more difficult as, as I've previously stated, the server does no processing of audio whatsoever, rather just passing it directly on to the nearby clients. Recording audio on the server would require including a vast portion of client machinery, including: an Opus decoder, and an audio writer (probably OpenAL, as that's what the client uses).
I upvote this, as it would make moderation much easier. Reports of misconduct could actually be reviewed. This would make it so that the server I host could actually let anyone use proximity voice chat, and not just "trusted" users.