如何将音频附加到提示中?
How do you attach audio to a prompt?
我在尝试将音频附加到提示 "What is your name" 和音频 "images/whatisyourname.wav" 时遇到困难。我不知道如何将这两个不同的元素附加在一起。
我已经为此工作了好几个小时了,并且无法正确思考。我根本不知道 javascript,所以请给我任何建议,这超出了我对这门语言的了解。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>eve_</title>
<link rel="icon" rel="preload" href="images/evecircle.png" />
<style>
#video {
margin-left:-10px;
margin-top:-10px;
}
</style>
<script src="https://code.responsivevoice.org/responsivevoice.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<style type="text/css">
body {
overflow:hidden;
}
</style>
<body onload="delayedAlert();">
<script>
var timeoutID;
function delayedAlert() {
timeoutID = window.setTimeout(slowAlert, 3000);
}
function slowAlert() {
var audio= document.getElementsByTagName('audio')[0];
const audio2 = document.getElementsByTagName('audio')[1];
audio.play();
var myvar1;alert('...Hello?')
audio2.play();
var myvar2;alert('Hello?');
const name = prompt('What is your name?')
const sentence = 'Hello' + name +',I am Eve. What does a' +name +'look like?';
responsiveVoice.speak(sentence, "US English Female", {rate: 0.7});
}
</script>
<audio>
<source src="images/hellllloooo.wav" type="audio/wav" preload=true>
</audio>
<audio>
<source src="images/sorry.wav?.wav?.wav" type="audio/wav" preload=true>
</audio>
<audio>
<source src="images/whatisyourname.wav" type="audio/wav" preload=true>
</audio>
<video autoplay="autoplay" preload="auto" id="video" src="images/secondnew.mp4" width="1300px" height="auto" style="position:absolute; z-index:-1;" >
Video not supported.
</video>
</body>
</html>
我认为这段代码会对您有所帮助。我想你只是调用停止方法。
function slowAlert() {
var audio= document.getElementsByTagName('audio')[0];
var audio2 = document.getElementsByTagName('audio')[1];
var audio3 = document.getElementsByTagName('audio')[2];
audio.play();
var myvar1;alert('...Hello?')
audio.stop();
audio2.play();
var myvar2;alert('Hello?');
audio2.stop();
audio3.play();
const name = prompt('What is your name?')
audio3.stop();
const sentence = 'Hello' + name +',I am Eve. What does a' +name +'look like?';
responsiveVoice.speak(sentence, "US English Female", {rate: 0.7});
}
您应该不需要在 DOM 中嵌入音频文件。这样的事情应该有效。您需要重构:
var promptAudio = new Audio('promp-sound.mp3');
promptAudio.volume = 1;
function promptSound() {
promptAudio.currentTime = 0;
promptAudio.play();
// call your alert
}
如果您无法让 responsiveVoice 在 alert/prompt 播放的同时播放,您必须使用回调,如下所示:
const name = prompt('What is your name?')
alertAndSpeak('Hello' + name +', I am Eve. What does a ' + name + ' look like?');
function alertAndSpeak(text) {
responsiveVoice.speak(text, "US English Female", {
rate: 0.7,
onstart: () => alert(text),
onend: null
});
}
<script src="https://code.responsivevoice.org/responsivevoice.js"></script>
我在尝试将音频附加到提示 "What is your name" 和音频 "images/whatisyourname.wav" 时遇到困难。我不知道如何将这两个不同的元素附加在一起。
我已经为此工作了好几个小时了,并且无法正确思考。我根本不知道 javascript,所以请给我任何建议,这超出了我对这门语言的了解。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>eve_</title>
<link rel="icon" rel="preload" href="images/evecircle.png" />
<style>
#video {
margin-left:-10px;
margin-top:-10px;
}
</style>
<script src="https://code.responsivevoice.org/responsivevoice.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<style type="text/css">
body {
overflow:hidden;
}
</style>
<body onload="delayedAlert();">
<script>
var timeoutID;
function delayedAlert() {
timeoutID = window.setTimeout(slowAlert, 3000);
}
function slowAlert() {
var audio= document.getElementsByTagName('audio')[0];
const audio2 = document.getElementsByTagName('audio')[1];
audio.play();
var myvar1;alert('...Hello?')
audio2.play();
var myvar2;alert('Hello?');
const name = prompt('What is your name?')
const sentence = 'Hello' + name +',I am Eve. What does a' +name +'look like?';
responsiveVoice.speak(sentence, "US English Female", {rate: 0.7});
}
</script>
<audio>
<source src="images/hellllloooo.wav" type="audio/wav" preload=true>
</audio>
<audio>
<source src="images/sorry.wav?.wav?.wav" type="audio/wav" preload=true>
</audio>
<audio>
<source src="images/whatisyourname.wav" type="audio/wav" preload=true>
</audio>
<video autoplay="autoplay" preload="auto" id="video" src="images/secondnew.mp4" width="1300px" height="auto" style="position:absolute; z-index:-1;" >
Video not supported.
</video>
</body>
</html>
我认为这段代码会对您有所帮助。我想你只是调用停止方法。
function slowAlert() {
var audio= document.getElementsByTagName('audio')[0];
var audio2 = document.getElementsByTagName('audio')[1];
var audio3 = document.getElementsByTagName('audio')[2];
audio.play();
var myvar1;alert('...Hello?')
audio.stop();
audio2.play();
var myvar2;alert('Hello?');
audio2.stop();
audio3.play();
const name = prompt('What is your name?')
audio3.stop();
const sentence = 'Hello' + name +',I am Eve. What does a' +name +'look like?';
responsiveVoice.speak(sentence, "US English Female", {rate: 0.7});
}
您应该不需要在 DOM 中嵌入音频文件。这样的事情应该有效。您需要重构:
var promptAudio = new Audio('promp-sound.mp3');
promptAudio.volume = 1;
function promptSound() {
promptAudio.currentTime = 0;
promptAudio.play();
// call your alert
}
如果您无法让 responsiveVoice 在 alert/prompt 播放的同时播放,您必须使用回调,如下所示:
const name = prompt('What is your name?')
alertAndSpeak('Hello' + name +', I am Eve. What does a ' + name + ' look like?');
function alertAndSpeak(text) {
responsiveVoice.speak(text, "US English Female", {
rate: 0.7,
onstart: () => alert(text),
onend: null
});
}
<script src="https://code.responsivevoice.org/responsivevoice.js"></script>