嗨,我有此源代码可以在浏览器中录制音频。 Record.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);
});
};
现在,此记录系统按以下步骤工作:
function init()
在页面加载后立即运行,并且在用户允许麦克风进入消息后startusermedia
函数运行2单击按钮后运行
toggleRecording(button)
函数,该函数开始记录音频toggleRecording
函数,该函数会停止录制音频如果可能,我想在此步骤中使用此系统:
1.首先单击按钮运行功能“init”,“startusermedia”和“togglerecording”,以便在单击后立即开始记录
2.点击将调用“toggleRecording”功能停止录音
本主题与我之前的问题有关:Run 2 functions with one button Javascript
最佳答案
如果我正确地回答了您的问题,那么您只需要以下内容:
var recording = false;
var recordButton = document.getElementById('recordButton');
function startRecording() {
if(!recording)
{
init();
startusermedia(recordButton);
}
toggleRecording(recordButton);
recording = !recording;
}
和按钮:
<button type="submit" onclick="startRecording();" data-run="0" id="recordButton"></button>
关于javascript - 一键运行更多功能JavaScript(在浏览器中录制音频),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29687385/