我在Chrome中编写了一个基本脚本,它使用新的Web Audio Api加载3个声音文件(通过XMLHTTPRequest),并逐个播放它们.我为每个声音提供了一个单独的按钮,允许用户启动和停止每个声音.
该脚本会立即加载所有三个声音文件,完成后,取消调暗播放按钮,这样用户只有在声音准备好后才能播放.此外,声音循环播放,因此当单击按钮时,每个按钮上的标签在"播放"和"停止"之间变化.
这一切都很有效...当您点击播放按钮时,您会听到循环声音,当您点击停止时声音会停止.但是,当您尝试第二次重新播放相同的声音时,声音将不会再次开始播放.每次单击播放/停止按钮时,都会调用相应的playSound()或stopSound()函数并传入适当的参数,但由于某种原因,我无法再次播放声音.难道我做错了什么?
这是我的代码:
<body>
<label for="playBtn1">Moog:</label>
<input id="playBtn1" type="button" value="Play" disabled />
<label for="playBtn1">Drums:</label>
<input id="playBtn2" type="button" value="Play" disabled />
<label for="playBtn1">Choir:</label>
<input id="playBtn3" type="button" value="Play" disabled />
<script>
var playBtn1 = document.getElementById("playBtn1");
var playBtn2 = document.getElementById("playBtn2");
var playBtn3 = document.getElementById("playBtn3");
var context = new webkitAudioContext();
var soundBuffer1 = null;
var soundBuffer2 = null;
var soundBuffer3 = null;
var soundBufferSourceNode1 = context.createBufferSource();
soundBufferSourceNode1.looping = true;
var soundBufferSourceNode2 = context.createBufferSource();
soundBufferSourceNode2.looping = true;
var soundBufferSourceNode3 = context.createBufferSource();
soundBufferSourceNode3.looping …Run Code Online (Sandbox Code Playgroud) 我是Coldfusion的新手,无法理解为什么我在使用cfhttp进行的http请求中添加几个标题时遇到了很多麻烦.我正在尝试使用cfscript编写请求,并且从我读过的所有内容中我应该能够简单地执行:
httpService.addParam(type="header", name="Content-Type", value="application/json");
Run Code Online (Sandbox Code Playgroud)
要么
httpService.addParam(type="header", name="Authorization", value=local.authPasscode);
Run Code Online (Sandbox Code Playgroud)
但传出请求似乎不包含这些标头.我可以告诉它不起作用,因为:
writeDump(GetHttpRequestData()),它显示了请求的所有细节(此输出根本不显示Authorization标头,并将Content-Type标头显示为:多部分/格式的数据; 边界= ---- WebKitFormBoundaryZs9TyOQV02N3fQop
我似乎也很难以类似的方式添加消息正文,所以我认为我做错了addParam().我是这样尝试的:
httpService.addParam(type="body", value="hello");
Run Code Online (Sandbox Code Playgroud)
同样,我得到的响应有一堆缺失的字段错误,输出writeDump(GetHttpRequestData())显示缺少的正文.
我应该能够以addParam()这种方式使用吗?
完整代码:
httpService = new http();
httpService.setMethod("POST");
httpService.setUrl(application.config.beanstream.postURL);
local.authPasscode = "Passcode " & ToBase64(application.config.beanstream.merchantid & ":" & application.config.beanstream.APIPasscode, "utf-8");
// Set headers.
httpService.addParam(type="header", name="Authorization", value=local.authPasscode);
httpService.addParam(type="header", name="Content-Type", value="application/json");
// Construct the message body.
local.body = {
"test": "hello"
};
httpService.addParam(type="body", value=SerializeJSON(local.body));
writeDump(GetHttpRequestData());
local.result = httpService.send().getPrefix();
Run Code Online (Sandbox Code Playgroud)
更新:
好的,所以我把我postURL改为另一个本地页面,在那个页面上,我GetHttpRequestData()用来将方法,协议,标题和内容全部记录到文件中.这是我得到的:
POST
HTTP/1.1 …Run Code Online (Sandbox Code Playgroud)