Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将字符打印与声音同步?_Javascript_Jquery - Fatal编程技术网

Javascript 如何将字符打印与声音同步?

Javascript 如何将字符打印与声音同步?,javascript,jquery,Javascript,Jquery,我需要模仿老式手动打字机在打印网页上键入的内容时所做的操作。我想开发JavaScript函数来传递一个字符串,它将延迟打印出每个字符,声音文件与每个字母同步 我是JavaScript新手。这样做的首选方法是什么?我应该看看jQuery吗?或者这是一件简单的事情 我在一些网络浏览器上看到过这样的声音文件触发问题,有没有一种音频文件格式最适合这种情况 我发现了这一点,但问题是,它并不适用于所有web浏览器: 您可以尝试以下方法: //每次击键之间的延迟 无功延迟=300; //打字机声音文件url

我需要模仿老式手动打字机在打印网页上键入的内容时所做的操作。我想开发JavaScript函数来传递一个字符串,它将延迟打印出每个字符,声音文件与每个字母同步

我是JavaScript新手。这样做的首选方法是什么?我应该看看jQuery吗?或者这是一件简单的事情

我在一些网络浏览器上看到过这样的声音文件触发问题,有没有一种音频文件格式最适合这种情况

我发现了这一点,但问题是,它并不适用于所有web浏览器:

您可以尝试以下方法:

//每次击键之间的延迟
无功延迟=300;
//打字机声音文件url
var clickURL=”https://cdn.rawgit.com/halimb/res/6ffa798d/typewriter.wav";
//获取对容器div的引用
var container=document.getElementById(“容器”);
var sampleString=“你好,世界!”;
//获取对“开始”按钮的引用,然后单击“打字”
var start=document.getElementById(“btn”);
start.onclick=function(){typewrite(sampleString);};
功能打字(str){
var i=0;
container.innerHTML=“”;
类型();
函数类型(){
var click=新音频(clickURL);
//当浏览器有足够的文件可供播放时,会触发此操作
click.oncanplaythrough=函数(){
单击。播放();
//将该字符添加到容器div
container.innerHTML+=str[i];
i++;
如果(i
*{
字体系列:信使;
字体大小:32px;
}
.btn{
显示:内联块;
边框:1px纯黑;
边界半径:5px;
填充:10px;
光标:指针;
利润率:10px;
}
开始

您可以尝试以下方法:

//每次击键之间的延迟
无功延迟=300;
//打字机声音文件url
var clickURL=”https://cdn.rawgit.com/halimb/res/6ffa798d/typewriter.wav";
//获取对容器div的引用
var container=document.getElementById(“容器”);
var sampleString=“你好,世界!”;
//获取对“开始”按钮的引用,然后单击“打字”
var start=document.getElementById(“btn”);
start.onclick=function(){typewrite(sampleString);};
功能打字(str){
var i=0;
container.innerHTML=“”;
类型();
函数类型(){
var click=新音频(clickURL);
//当浏览器有足够的文件可供播放时,会触发此操作
click.oncanplaythrough=函数(){
单击。播放();
//将该字符添加到容器div
container.innerHTML+=str[i];
i++;
如果(i
*{
字体系列:信使;
字体大小:32px;
}
.btn{
显示:内联块;
边框:1px纯黑;
边界半径:5px;
填充:10px;
光标:指针;
利润率:10px;
}
开始

试着想一想你要做什么,分解问题,在互联网上搜索每个部分,尝试实施它,然后如果你有问题,来这里询问!因此,这不是提出如此广泛问题的最佳场所。试着思考一下你正在尝试做什么,分解问题,在互联网上搜索每个部分,尝试实施它,然后如果你有问题,来这里询问!所以这不是问这么广泛问题的最好地方。太好了!你知道为什么这在Google Chrome/Mac上有效,但在Safari/Mac上不起作用吗?没有声音。我在别处读到一条建议,在Safari中使用ogg而不是wav文件可能会更好?你有什么想法吗?事实恰恰相反,对ogg的支持是有限的,wav文件更适合于跨浏览器支持(IE除外)。下面的表格显示了不同浏览器上支持的格式:也许这就是音频的答案?我不了解移动,至于网络音频API,它肯定更丰富、更强大,但由于它处于较低的级别,需要更多的代码来设置,您可以选择最适合自己的;)美好的你知道为什么这在Google Chrome/Mac上有效,但在Safari/Mac上不起作用吗?没有声音。我在别处读到一条建议,在Safari中使用ogg而不是wav文件可能会更好?你有什么想法吗?事实恰恰相反,对ogg的支持是有限的,wav文件更适合于跨浏览器支持(IE除外)。下面的表格显示了不同浏览器上支持的格式:也许这就是音频的答案?我不了解移动,至于网络音频API,它肯定更丰富、更强大,但由于它处于较低的级别,需要更多的代码来设置,您可以选择最适合自己的;)