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