Javascript MediaStreamRecorder和TypeScript未捕获类型错误
我目前正在开发一款使用用户PC麦克风的录音机,效果很好。但是,当我想要录制音频时,我会遇到以下类型的错误: audioHandler.ts:45未捕获类型错误:MediaStreamRecorder不是函数 代码如下:Javascript MediaStreamRecorder和TypeScript未捕获类型错误,javascript,html,audio,typescript,media,Javascript,Html,Audio,Typescript,Media,我目前正在开发一款使用用户PC麦克风的录音机,效果很好。但是,当我想要录制音频时,我会遇到以下类型的错误: audioHandler.ts:45未捕获类型错误:MediaStreamRecorder不是函数 代码如下: /// <reference path="../references.d.ts" /> //This component handles all things audio related export = Scaut.AudioHandler; module Sc
/// <reference path="../references.d.ts" />
//This component handles all things audio related
export = Scaut.AudioHandler;
module Scaut.AudioHandler {
var n = <any>navigator;
var stream = <any>"";
var stopRecording = <any>"";
var mediaRecorder = <any>"";
//var MediaStreamRecorder = <any>"";
//Check if microphone is ok
export function hasGetUserMedia() {
n.getUserMedia = n.getUserMedia ||
n.webkitGetUserMedia ||
n.mozGetUserMedia;
if (n.getUserMedia) {
n.getUserMedia({ audio: true},
function (stream) {
var audio = <any>"";
audio = document.getElementById('audioRecord');
audio.src = window.URL.createObjectURL(stream);
audio.onloadedmetadata = function (e) {
audio.play();
};
},
function (err) {
alert("The following error occured: " + err.name);
}
);
} else {
alert("getUserMedia not supported");
}
recordAudio(stream);
}
//Record audio
export function recordAudio(stream) {
mediaRecorder = new MediaStreamRecorder(stream);
console.log("Stream: "+stream)
mediaRecorder.mimeType = 'audio/ogg';
mediaRecorder.audioChannels = 1;
mediaRecorder.ondataavailable = function (blob) {
// POST/PUT "Blob" using FormData/XHR2
var blobURL = URL.createObjectURL(blob);
//document.write('<a href="' + blobURL + '">' + blobURL + '</a>');
console.log("Blob: "+blob)
console.log("BlobUrl: "+blobURL)
};
mediaRecorder.start(3000);
}
//
//这个组件处理所有与音频相关的事情
export=Scaut.AudioHandler;
模块Scaut.AudioHandler{
变量n=');
log(“Blob:+Blob”)
log(“BlobUrl:+BlobUrl”)
};
mediaRecorder.启动(3000);
}
有人能给我指出正确的方向吗?看起来您的错误是在编译时发生的(错误消息指向您的
.ts
文件)
该错误意味着编译器不知道MediaStreamRecorder
类型,我假设您是从JavaScript库导入的
要清除错误,可以使用以下类似代码为其创建简单的类型定义
declare var MediaStreamRecorder: any;
这将清除错误,但不会给您任何进一步的类型检查或类型的自动完成。如果需要,可以改善这种情况。您是否导入了文件中的?谢谢Fenton!这正是我想要的。事实上,我刚刚买了你的书Pro TypeScript,今天收到了,期待着深入了解。不客气,谢谢你买我的书:)