我正在帮助AngularJS cordova应用程序的一些代码。我有一段代码,单击按钮即可触发Android上的录制音频功能。
在进行实验时,我想让“ if”和“ else”语句运行相同的代码(长话短说,但这只是出于测试目的)。
当我将相同的代码添加到“ else”语句中时,该按钮不再触发录制音频麦克风的权限。而是,它记录错误消息。
唯一的变化是将曾经在if语句中工作过的相同代码添加到else语句中。我没有编写代码,所以我试图理解它,不确定在此忽略什么。
为清楚起见,我同时包含了原始功能和更新后的功能
原始功能
//This pops the Android microphone recording
function recordButton(){
if($rootScope.currentState === 'page1'){
if (vm.recordReady){
vm.recordReady = false;
vm.recordRecording = true;
dialogflowService.beginMicListener()
.catch(err => {
console.error('Audio Problem ', err);
vm.recordReady = true;
vm.recordRecording = false;
vm.recordLoading = false;
});
} else if (vm.recordRecording){
vm.recordRecording = false;
vm.recordLoading = endListener();
}
} else {
console.log("Soemthing Else");
}
}
新功能
function recordButton(){
if($rootScope.currentState === 'page1'){
if (vm.recordReady){
vm.recordReady = false;
vm.recordRecording = true;
dialogflowService.beginMicListener()
.catch(err => {
console.error('Audio Problem ', err);
vm.recordReady = true;
vm.recordRecording = false;
vm.recordLoading = false;
});
} else if (vm.recordRecording){
vm.recordRecording = false;
vm.recordLoading = endListener();
}
} else {
if (vm.recordReady){
vm.recordReady = false;
vm.recordRecording = true;
dialogflowService.beginMicListener()
.catch(err => {
console.error('Audio Problem ', err); //This error prints and no Android microphone permission prompt shows
vm.recordReady = true;
vm.recordRecording = false;
vm.recordLoading = false;
});
} else if (vm.recordRecording){
vm.recordRecording = false;
vm.recordLoading = endListener();
}
}
}