Современные браузеры предоставляют API для доступа к входу микрофона/камеры и записи их непосредственно в браузере. Для этого не требуются внешние библиотеки или пакеты. Чтобы создать диктофон в браузере, мы обратимся к двум API-интерфейсам JavaScript, чтобы получить доступ к микрофонному входу пользователя и записать их.

MediaRecorder API — это API JavaScript, который позволяет записывать аудио и видео в браузере. Он является частью стандарта WebRTC (Web Real-Time Communications), который предоставляет веб-браузерам поддержку связи в реальном времени, такой как голосовые и видеозвонки, без необходимости использования плагинов или другого внешнего программного обеспечения.

MediaRecorder API предоставляет способ записи аудио- и видеоданных из объекта MediaStream, который представляет собой поток аудио- и/или видеоданных из одного или нескольких источников мультимедиа (например, микрофона или камеры устройства). MediaRecorder API позволяет управлять процессом записи, включая запуск и остановку записи, а также обработку записанных данных по мере их появления.

Вы можете узнать больше об MediaRecorder API и о том, как его использовать, на веб-сайте Mozilla Developer Network:



Давайте создадим приложение "Диктофон":

Чтобы создать диктофон с помощью JavaScript и HTML, вы можете использовать метод navigator.mediaDevices.getUserMedia() для доступа к микрофону устройства и API MediaRecorder для записи звука. Давайте перейдем к примеру.

<!-- HTML for the page -->
<h1>Voice Recorder</h1>
<p>Click the "Start Recording" button to start recording audio from your microphone.</p>

<button id="start-button">Start Recording</button>
<button id="stop-button" disabled>Stop Recording</button>

<p>Recordings:</p>
<ol id="recordings-list"></ol>
// JavaScript for the page
const startButton = document.getElementById('start-button');
const stopButton = document.getElementById('stop-button');
const recordingsList = document.getElementById('recordings-list');

let mediaRecorder;
let audioChunks = [];

// Helper function to add a new recording to the page
function addRecording(blob) {
  // Create a new audio element
  const audio = document.createElement('audio');
  // Set its source to the recorded blob
  audio.src = URL.createObjectURL(blob);
  audio.controls = true;
  // Add it to the page
  recordingsList.appendChild(audio);
}

// Function to handle the "start recording" button click
function startRecording() {
  // Request access to the microphone
  navigator.mediaDevices.getUserMedia({ audio: true })
    .then(stream => {
      // Create a new MediaRecorder instance to record the audio
      mediaRecorder = new MediaRecorder(stream);
      // Add an event listener to be notified when a new chunk of audio is available
      mediaRecorder.addEventListener('dataavailable', event => {
        // Push the new chunk of audio to the array
        audioChunks.push(event.data);
      });
      // Add an event listener to be notified when the recording is finished
      mediaRecorder.addEventListener('stop', () => {
        // Create a new blob from the recorded audio
        const audioBlob = new Blob(audioChunks);
        // Add the recorded audio to the page
        addRecording(audioBlob);
      });
      // Start recording the audio
      mediaRecorder.start();
      // Update the UI
      startButton.disabled = true;
      stopButton.disabled = false;
    })
    .catch(error => {
      // Handle any errors that occurred
      console.error(error);
    });
}

// Function to handle the "stop recording" button click
function stopRecording() {
  // Stop the media recorder
  mediaRecorder.stop();
  // Update the UI
  startButton.disabled = false;
  stopButton.disabled = true;
}

// Add event listeners for the start and stop buttons
startButton.addEventListener('click', startRecording);
stopButton.addEventListener('click', stopRecording);

В этом примере создается простая страница с двумя кнопками: «Начать запись» и «Остановить запись». Когда пользователь нажимает кнопку «Начать запись», код запрашивает доступ к микрофону устройства с помощью метода navigator.mediaDevices.getUserMedia() и начинает запись звука с помощью MediaRecorder API. Когда пользователь нажимает кнопку «Остановить запись», код останавливает запись и добавляет записанный звук на страницу в виде нового элемента <audio>.

Это всего лишь один из способов создать простой диктофон с помощью JavaScript и HTML. Вы можете изменить и расширить этот пример в соответствии с вашими конкретными потребностями и требованиями.

Посмотрите мой профиль GitHub. Подпишитесь на меня в Twitter, LinkedIn, YouTube и Facebook.