Update RecortRTC + use StereoAudioRecorder for Safari

pull/3711/head
Angel Fernando Quiroz Campos 5 years ago
parent 545cb6b15a
commit c52b41287e
  1. 20
      main/inc/lib/javascript/record_audio/record_audio.js
  2. 298
      main/inc/lib/javascript/rtc/RecordRTC.js
  3. 27
      main/template/default/learnpath/record_voice.tpl
  4. 25
      plugin/whispeakauth/assets/js/RecordAudio.js

@ -1,6 +1,8 @@
/* For licensing terms, see /license.txt */
window.RecordAudio = (function () {
var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
function startTimer() {
$("#timer").show();
var timerData = {
@ -120,13 +122,11 @@ window.RecordAudio = (function () {
}
}
navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia;
function successCallback(stream) {
stopTimer();
startTimer();
recordRTC = RecordRTC(stream, {
numberOfAudioChannels: 1,
recorderType: isSafari ? RecordRTC.StereoAudioRecorder : RecordRTC.MediaStreamRecorder,
type: 'audio'
});
recordRTC.startRecording();
@ -143,16 +143,18 @@ window.RecordAudio = (function () {
function errorCallback(error) {
stopTimer();
alert(error.message);
alert(error);
}
if (navigator.getUserMedia) {
if(!!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia)) {
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
navigator.getUserMedia(mediaConstraints, successCallback, errorCallback);
} else if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia(mediaConstraints)
.then(successCallback)
.error(errorCallback);
return;
}
navigator.mediaDevices.getUserMedia(mediaConstraints)
.then(successCallback)
.catch(errorCallback);
});
btnPause.on('click', function () {

File diff suppressed because one or more lines are too long

@ -31,6 +31,8 @@
<script>
$(function() {
var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
function startTimer() {
$("#timer").show();
var timerData = {
@ -87,22 +89,11 @@
return false;
}
navigator.getUserMedia = navigator.getUserMedia ||
navigator.mozGetUserMedia ||
navigator.webkitGetUserMedia;
if (navigator.getUserMedia) {
navigator.getUserMedia(mediaConstraints, successCallback, errorCallback);
} else if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia(mediaConstraints)
.then(successCallback).error(errorCallback);
}
function successCallback(stream) {
stopTimer();
startTimer();
recordRTC = RecordRTC(stream, {
numberOfAudioChannels: 1,
recorderType: isSafari ? RecordRTC.StereoAudioRecorder : RecordRTC.MediaStreamRecorder,
type: 'audio'
});
recordRTC.startRecording();
@ -113,8 +104,18 @@
function errorCallback(error) {
stopTimer();
alert(error.message);
alert(error);
}
if(!!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia)) {
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
navigator.getUserMedia(mediaConstraints, successCallback, errorCallback);
return;
}
navigator.mediaDevices.getUserMedia(mediaConstraints)
.then(successCallback)
.catch(errorCallback);
});
btnStop.on('click', function () {

@ -2,7 +2,8 @@
window.RecordAudio = (function () {
var timerInterval = 0,
$txtTimer = null;
$txtTimer = null,
isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
function startTimer() {
stopTimer();
@ -47,7 +48,6 @@ window.RecordAudio = (function () {
}
}
function useRecordRTC(rtcInfo) {
$(rtcInfo.blockId).show();
@ -123,8 +123,7 @@ window.RecordAudio = (function () {
localStream = stream;
recordRTC = RecordRTC(stream, {
recorderType: StereoAudioRecorder,
numberOfAudioChannels: 1,
recorderType: isSafari ? RecordRTC.StereoAudioRecorder : RecordRTC.MediaStreamRecorder,
type: 'audio'
});
recordRTC.startRecording();
@ -139,22 +138,18 @@ window.RecordAudio = (function () {
}
function errorCallback(error) {
alert(error.message);
alert(error);
}
if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia(mediaConstraints)
.then(successCallback)
.catch(errorCallback);
if(!!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia)) {
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
navigator.getUserMedia(mediaConstraints, successCallback, errorCallback);
return;
}
navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia;
if (navigator.getUserMedia) {
navigator.getUserMedia(mediaConstraints, successCallback, errorCallback);
}
navigator.mediaDevices.getUserMedia(mediaConstraints)
.then(successCallback)
.catch(errorCallback);
});
btnStop.on('click', function () {

Loading…
Cancel
Save