Does Nextcloud have an audio recording app

Does Nextcloud have an audio recording app

@James_Bradley hey there and welcome to the wonderful world of the nextcloud community-forum :wink:

depending upon the OS you access NC there might be built-in audio recording apps on OS-level.
As for NC itself I don’t know of any such thing and I’m pretty sure that there is none.

Hi Could you possibly be more specific as to which OS might have a built-in audio recording app that you are aware of?

iOS, Android…

OK Thank you!

Might it be possible to remove the Audio Recording Plug-in from Nextcloud TALK App, to use it independently for audio recordings of in-house meetings, instead of for telephone conversations?

aww… well I think talk relies on WebRTC and its tools.

and if you want to use talk and getting your stuff recorded try this app Talked - attention, this is only the client for a dedicated talked-server… you’ll find the link to that within the description… and apparently it seems to work on AiO
(though it seems as if would need to be polished up a bit. Maybe something for your devs?)

I very much appreciate your input, but I am afraid that TALK & TALKED might be a bit of a dead-end for me, due to both not being supported in the last 3 Nextcloud software updates, (Seems like they have gone into hibernation) unless it might be possible to surgically remove the recording aspect of the APP to function as a standalone nextcloud audio recording feature???

I really can’t tell I’m afraid.
But again… try to find out how the WebRTC-standard (especially openWebRTC) works which might get you closer to a solution
Apart from that I think is open source as well and you can do whatever you want with it’s source code

Maybe someone can implement a simple audio recording app based on WebRTC. You can use something like this. Because of the use of external software for mp3 i implemented it in wav-format. You can save the html local or on a webserver with e.g. audio.html.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Audio Recording with WebRTC</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            text-align: center;
            margin-top: 50px;
        }
        button {
            margin: 10px;
            padding: 10px 20px;
            font-size: 16px;
        }
        #timer {
            font-size: 24px;
            margin-top: 20px;
        }
        #audioContainer {
            margin-top: 40px; /* Erhöhter Abstand */
        }
        #downloadBtn {
            display: none;
            margin-top: 20px;
            padding: 10px 20px;
            font-size: 16px;
        }
        #downloadBtn:hover {
            background-color: #696969;
        }
    </style>
</head>
<body>
    <h1>Audio Recording</h1>
    <button id="startBtn">Start Recording</button>
    <button id="stopBtn" disabled>Stop Recording</button>
    <div id="timer">00:00:00</div>

    <div id="audioContainer">
        <audio id="audioPlayback" controls></audio>
    </div>

    <div style="margin-top: 20px;">
        <button id="downloadBtn">Download Recording</button>
    </div>

    <script>
        let mediaRecorder;
        let audioChunks = [];
        let timerInterval;
        let elapsedTime = 0;

        function startTimer() {
            timerInterval = setInterval(() => {
                elapsedTime++;
                const hours = String(Math.floor(elapsedTime / 3600)).padStart(2, '0');
                const minutes = String(Math.floor((elapsedTime % 3600) / 60)).padStart(2, '0');
                const seconds = String(elapsedTime % 60).padStart(2, '0');
                document.getElementById('timer').textContent = `${hours}:${minutes}:${seconds}`;
            }, 1000);
        }

        function stopTimer() {
            clearInterval(timerInterval);
            elapsedTime = 0; 
            document.getElementById('timer').textContent = '00:00:00';
        }

        document.getElementById('startBtn').addEventListener('click', async () => {
            const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
            mediaRecorder = new MediaRecorder(stream);
            mediaRecorder.start();
            
            startTimer();

            mediaRecorder.addEventListener('dataavailable', event => {
                audioChunks.push(event.data);
            });

            mediaRecorder.addEventListener('stop', () => {
                stopTimer();
                const audioBlob = new Blob(audioChunks, { type: 'audio/wav' });
                const audioUrl = URL.createObjectURL(audioBlob);
                const audioPlayback = document.getElementById('audioPlayback');
                audioPlayback.src = audioUrl;

                const downloadBtn = document.getElementById('downloadBtn');
                downloadBtn.onclick = function() {
                    const downloadLink = document.createElement('a');
                    downloadLink.href = audioUrl;
                    downloadLink.download = 'recording.wav';
                    downloadLink.click();
                };
                downloadBtn.style.display = 'inline-block';
                audioChunks = [];
            });

            document.getElementById('startBtn').disabled = true;
            document.getElementById('stopBtn').disabled = false;
        });

        document.getElementById('stopBtn').addEventListener('click', () => {
            mediaRecorder.stop();
            document.getElementById('startBtn').disabled = false;
            document.getElementById('stopBtn').disabled = true;
        });
    </script>
</body>
</html>

Thank you,

JimmyKater & Devnull.

I will study your recommendations, and very much appreciate your inputs.

I am guessing Audio Recording Important in-house/in-person meetings (For post-review by attendees, or for people who have missed said meetings), to archive them as a valuable resource in NextCloud Storage Server, is not a hot priority research project for the NextCloud Community, at the moment.
I am guessing I am going to have to try to utilize NextCloud Talk’s recording facility for our in-house in-person meetings, but not sure how to yet???
Will have to sleep on it a bit!
Thnx again Guy’s!!