Javascript 对象NAVIGATORUSERMEDIAERROR出现在linux服务器上运行的音频录制上

Javascript 对象NAVIGATORUSERMEDIAERROR出现在linux服务器上运行的音频录制上,javascript,linux,Javascript,Linux,您好,我想寻求有关如何启用或能够允许linux从其他pc获取或录制音频的帮助。我的意思是我的web应用程序当前托管在我的linux服务器上,该服务器当前处于活动状态,我现在的问题是我收到此错误: 无实时音频输入:[对象导航器UserMediaError] 在我的日志中:NAVIGATOR.GETUSERMEDIA可用,但似乎无法捕获录制。下面是我的代码。请帮助我开悟。请原谅我问一下,我实际上是这方面的初学者。这是我的javascript代码 <script> functi

您好,我想寻求有关如何启用或能够允许linux从其他pc获取或录制音频的帮助。我的意思是我的web应用程序当前托管在我的linux服务器上,该服务器当前处于活动状态,我现在的问题是我收到此错误:

  • 无实时音频输入:[对象导航器UserMediaError]
在我的日志中:NAVIGATOR.GETUSERMEDIA可用,但似乎无法捕获录制。下面是我的代码。请帮助我开悟。请原谅我问一下,我实际上是这方面的初学者。这是我的javascript代码

  <script>
  function __log(e, data) {
    log.innerHTML += "\n" + e + " " + (data || '');
  }

  var audio_context;
  var recorder;

  function startUserMedia(stream) {
    var input = audio_context.createMediaStreamSource(stream);
    __log('Media stream created.' );
    __log("input sample rate " +input.context.sampleRate);

    // Feedback!
    //input.connect(audio_context.destination);
    __log('Input connected to audio context destination.');

    recorder = new Recorder(input, {
                  numChannels: 1
                });
    __log('Recorder initialised.');
  }

  function startRecording(button) {
    recorder && recorder.record();
    button.disabled = true;
    button.nextElementSibling.disabled = false;
    __log('Recording...');
  }

  function stopRecording(button) {
    recorder && recorder.stop();
    button.disabled = true;
    button.previousElementSibling.disabled = true;
    __log('Stopped recording.');

    // create WAV download link using audio data blob
    createDownloadLink();

    recorder.clear();
  }

  function createDownloadLink() {
    recorder && recorder.exportWAV(function(blob) {
      /*var url = URL.createObjectURL(blob);
      var li = document.createElement('li');
      var au = document.createElement('audio');
      var hf = document.createElement('a');

      au.controls = true;
      au.src = url;
      hf.href = url;
      hf.download = new Date().toISOString() + '.wav';
      hf.innerHTML = hf.download;
      li.appendChild(au);
      li.appendChild(hf);
      recordingslist.appendChild(li);*/
    });
  }

  window.onload = function init() {
    try {
      // webkit shim
      window.AudioContext = window.AudioContext || window.webkitAudioContext;
      navigator.getUserMedia = ( navigator.getUserMedia ||
                       navigator.webkitGetUserMedia ||
                       navigator.mozGetUserMedia ||
                       navigator.msGetUserMedia);
      window.URL = window.URL || window.webkitURL;

      audio_context = new AudioContext;
      __log('Audio context set up.');
      __log('navigator.getUserMedia ' + (navigator.getUserMedia ? 'available.' : 'not present!'));
    } catch (e) {
      alert('No web audio support in this browser!');
    }

    navigator.getUserMedia({audio: true}, startUserMedia, function(e) {
      __log('No live audio input: ' + e);
    });
  };
  </script>

功能日志(e,数据){
log.innerHTML+=“\n”+e++”(数据| |“”);
}
var-audio\u上下文;
无功记录仪;
功能startUserMedia(流){
var input=audio_context.createMediaStreamSource(流);
__日志('已创建媒体流');
__日志(“输入采样率”+input.context.sampleRate);
//反馈!
//输入连接(音频上下文目的地);
__日志('连接到音频上下文目标的输入');
记录器=新记录器(输入{
数字频道:1
});
__日志(“记录器初始化”);
}
功能启动记录(按钮){
记录器&recorder.record();
button.disabled=true;
button.nextElementSibling.disabled=false;
__日志('记录…');
}
功能停止录制(按钮){
记录器(&R)记录器停止();
button.disabled=true;
button.previousElementSibling.disabled=true;
__日志('停止记录');
//使用音频数据块创建WAV下载链接
createDownloadLink();
记录器。清除();
}
函数createDownloadLink(){
记录器和记录器.exportWAV(函数(blob){
/*var url=url.createObjectURL(blob);
var li=document.createElement('li');
var au=document.createElement('audio');
var hf=document.createElement('a');
au.controls=true;
au.src=url;
hf.href=url;
hf.download=new Date().toISOString()+'.wav';
hf.innerHTML=hf.download;
李.儿童(非盟);
李.儿童(hf);
RecordingList.appendChild(li)*/
});
}
window.onload=函数init(){
试一试{
//webkit垫片
window.AudioContext=window.AudioContext | | window.webkitadiocontext;
navigator.getUserMedia=(navigator.getUserMedia||
navigator.webkitGetUserMedia||
navigator.mozGetUserMedia||
navigator.msGetUserMedia);
window.URL=window.URL | | window.webkitURL;
音频上下文=新的音频上下文;
__日志(“音频上下文设置”);
__日志('navigator.getUserMedia'+(navigator.getUserMedia?'available.':'not present!'));
}捕获(e){
警报(“此浏览器中不支持web音频!”);
}
getUserMedia({audio:true},startUserMedia,函数(e){
__日志('无现场音频输入:'+e);
});
};
navigator.getUserMedia()API最近(可能在2015年12月)已从浏览器中删除。我也有同样的问题,看起来MediaRecorder()API解决了这个问题——尽管我还没有测试过它。

非常感谢:)。不管怎样,我还是要试试。