我正在尝试在 Javascript 中实现对麦克风的访问,在网页中,
使用navigator.getUserMedia({audio: true})
或 navigator.mediaDevices.getUserMedia({audio:true})
(并实现对 vendor 前缀的检查:navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
)
响应页面上按钮的单击事件而调用
似乎在 IOS Safari 中不起作用。 (在桌面 Chrome 中工作正常)。
然而 , these guys这里似乎可以正常工作 - 它可以在我的 iPhone 上的 Safari 上运行。
他们在做什么不同?
最佳答案
enter image description here我们可以在输入文本框中使用键盘麦克风并在用户停止询问时以编程方式触发某些功能
var prevTextboxWords = "";
var textboxWords = "";
var textRepeatTimes = 0;
var prevTextCheck = "";
var textCheck = "";
var textCheckNumber = 0;
var x = 0;
var speechTimeOutLimit = 16;
var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);
if (iOS) {
iosVoice();
function iosVoice() {
setTimeout(function() {
textCheck = $("#record").val();
var numberOfWordsSpoken = textCheck.split(" ").length;
if (numberOfWordsSpoken < 3) speechTimeOutLimit = 16;
else if (numberOfWordsSpoken < 6) speechTimeOutLimit = 12;
else speechTimeOutLimit = 7;
if (textCheck != "" && textCheck == prevTextCheck) {
textCheckNumber++
} else {
textCheckNumber = 0
}
if (textCheck.length < 4) textCheckNumber = 0;
if (textCheckNumber > speechTimeOutLimit) {
textCheckNumber = 0;
$("#record").val("");
prevTextCheck = "";
textCheck = textCheck.toLowerCase();
console.log(textCheck + "HIT");
//some function with text textCheck
textCheck = ""
}
prevTextCheck = textCheck;
coroverIosVoice()
}, 200)
}
}
<input type="text" id="record">
关于javascript - Mobile Safari 中 Javascript 中的麦克风访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918434/