ограничить только однократную запись голоса в JS - PullRequest
0 голосов
/ 16 июня 2020

1) Это мой скрипт записи голоса для записи голоса пользователя. он работает правильно, но мне нужно ограничить пользователей, которые могут записывать голос только один раз. после времени записи голоса до следующего раза, когда пользователь не сможет записать голос.

2) Я получаю записи таким образом <ol id="recordingsList"></ol> Мне нужно сохранить это значение в одной переменной PHP, как я могу хранить значение в одной переменной? Я пробовал jsencode (), но он не работает.

URL = window.URL || window.webkitURL;

var gumStream;       
var rec;             
var input;           
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext //audio context to help us record

var recordButton = document.getElementById("recordButton");
var stopButton = document.getElementById("stopButton");
var pauseButton = document.getElementById("pauseButton");

recordButton.addEventListener("click", startRecording);
stopButton.addEventListener("click", stopRecording);
pauseButton.addEventListener("click", pauseRecording);

function startRecording() {
  console.log("recordButton clicked");

    var constraints = { audio: true, video:false }

  recordButton.disabled = true;
  stopButton.disabled = false;
  pauseButton.disabled = false

  navigator.mediaDevices.getUserMedia(constraints).then(function(stream) {
    console.log("getUserMedia() success, stream created, initializing Recorder.js ...");

    audioContext = new AudioContext();

    document.getElementById("formats").innerHTML="Format: 1 channel pcm @ "+audioContext.sampleRate/1000+"kHz"

    gumStream = stream;
    input = audioContext.createMediaStreamSource(stream);

    rec = new Recorder(input,{numChannels:1})

    rec.record()

    console.log("Recording started");

  }).catch(function(err) {
      recordButton.disabled = false;
      stopButton.disabled = true;
      pauseButton.disabled = true
  });
}

function pauseRecording(){
  console.log("pauseButton clicked rec.recording=",rec.recording );
  if (rec.recording){
    rec.stop();
    pauseButton.innerHTML="Resume";
  }else{
    rec.record()
    pauseButton.innerHTML="Pause";

  }
}

function stopRecording() {
  console.log("stopButton clicked");

  stopButton.disabled = true;
  recordButton.disabled = false;
  pauseButton.disabled = true;

  pauseButton.innerHTML="Pause";

  rec.stop();

  gumStream.getAudioTracks()[0].stop();

  rec.exportWAV(createDownloadLink);
}

function createDownloadLink(blob) {

  var url = URL.createObjectURL(blob);
  var au = document.createElement("audio");
  var li = document.createElement("li");
  var link = document.createElement("a");

  var filename = new Date().toISOString();

  au.controls = true;
  au.src = url;

  li.appendChild(au);

  li.appendChild(document.createTextNode(filename+".wav "))

  li.appendChild(link);
  recordingsList.appendChild(li);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...