【发布时间】:2015-04-16 15:29:12
【问题描述】:
我使用从网上下载的这段 HTML 和 JS 代码来录制音频,但是有一个问题,因为页面加载到屏幕上后立即出现允许麦克风的消息。这是因为源代码record.js中的window.onload = function init()。但是我想在单击按钮后显示消息。
出于这个原因,我尝试使用此按钮调用两个函数 - toggleRecording(button) 和 init() 但“按钮”元素存在问题,所以它不起作用,但我认为它可以工作,如果它会写得好。你能告诉我如何修改这两个函数init 和toggleRecording 被这个按钮调用吗?我是 JS 新手,我不知道它是如何工作的。
index.html
<button type="submit" onclick="toggleRecording()" data-run="0"></button>
record.js
//starts by click on button
function toggleRecording() {
var run = parseInt(getAttribute('data-run')); //
if(run === 1) {
recorder && recorder.stop();
recorder && recorder.exportWAV(function(blob) {
uploadAudioFromBlob(blob);
});
__log('Recording is stopped.');
button.setAttribute('data-run', 0);
}
else {
recorder && recorder.clear();
recorder && recorder.record();
__log('Speak...');
button.setAttribute('data-run', 1);
}
}
function __log(e, data) {
showInfo("\n" + e + " " + (data || ''));
}
var audio_context;
var recorder;
function startUserMedia(stream) {
var input = audio_context.createMediaStreamSource(stream);
recorder = new Recorder(input);
__log('Systém for recording is available.');
}
function startRecording(button) {
recorder && recorder.clear();
recorder && recorder.record();
button.nextElementSibling.disabled = false;
__log('Talk...');
}
window.onload=function init() {
try {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
window.URL = window.URL || window.webkitURL;
audio_context = new AudioContext;
} catch (e) {
alert('This browser do not support audio!');
}
navigator.getUserMedia({audio: true}, startUserMedia, function(e) {
__log('No audio was detected: ' + e);
});
};
更新:
现在该系统按以下步骤工作:
1. function init() 在页面加载后立即运行,在用户允许麦克风后,startusermedia 函数运行
2.点击按钮后运行toggleRecording(button)功能开始录制
3.第二次点击按钮运行toggleRecording函数停止录制
如果可能的话,我想在这个步骤中使用这个系统:
1.首先点击按钮运行功能init和startusermedia和togglerecording所以点击后立即开始录制
2.第二次点击会调用toggleRecording函数停止录制
【问题讨论】:
-
你试过
onclick="toggleRecording(); init();"这种方式吗,随心所欲地改变顺序
标签: javascript html function