내가 알 수있는 한, voiceschanged 이벤트는 Mac 또는 iOS에서 Safari로 실행되지 않습니다. 또한 이상한 점은 iOS에서도 Chrome에서는 실행되지 않는 것 같지만 iOS의 Chrome은 Safari와 동일한 자바 스크립트 엔진을 사용한다고 가정합니다. voiceschanged 이벤트가 Safari에서 실행되지 않음
speechSynthesis.addEventListener("voiceschanged", function() {
var voices = speechSynthesis.getVoices(),
keys = Object.keys(voices[0]),
i, j;
document.write("<table border=1><tr>");
for (i = 0; i < keys.length; i++) {
document.write("<td>" + keys[i] + "</td>");
}
document.write("</tr>");
for (i = 0; i < voices.length; i++) {
document.write("</tr>");
for (j = 0; j < keys.length; j++) {
document.write("<td>" + voices[i][keys[j]] + "</td>");
}
document.write("</tr>");
}
document.write("<table>");
}, false);
두 가지 접근법이 (onvoiceschanged, 또는 addEventListener가) 크롬에서 잘 작동
: 나는 또한하여 addEventListener를 사용하여 시도했습니다(Getting the list of voices in speechSynthesis of Chrome (Web Speech API)에서 가져온) http://jsbin.com/gosaqihi/9/edit?js,console을 : 여기
내가 확인하는 데 사용 데모입니다 Windows, Android 및 Mac의 경우 iOS 용 Chrome과 Mac 및 iOS 용 Safari에서는 실패합니다. 내가 말할 수있는 한, Safari는 단순히 음성으로 변경된 이벤트를 실행하지 않습니다.복잡한 일들, 나는 실제로 어떤 Apple 장치도 소유하고 있지 않으므로 친구들에게 물건을 사용해보아야 만했습니다.
음성 목록을 얻으려면 Safari에서해야 할 특별한 기능이 있습니까? 아니면 음성 합성 API가 아직 완전히 구현되지 않았습니까?
감사합니다. 나는 이것이 어딘가에서 더 잘 기록되기를 바란다. : / – Asmor