- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么我的 javascript 音频控件不能与 Web Audio API 一起使用?有人能看出我做的事情有什么问题吗?我用过:
$('.play').click(function() {
audioBufferSourceNode.play();
});
$('.pause').click(function() {
audioBufferSourceNode.pause();
});
$('.volumeMax').click(function() {
audioBufferSourceNode.volume=1;
});
$('.volumestop').click(function() {
audioBufferSourceNode.volume=0;
});
$('.playatTime').click(function() {
audioBufferSourceNode.currentTime= 35;
audioBufferSourceNode.play();
});
但由于某种原因它不起作用。这是我的index.php 页面。
<div id="wrapper">
<div id="fileWrapper" class="file_wrapper">
<div id="info">
HTML5 Audio API showcase | An Audio Viusalizer
</div>
<label for="uploadedFile">Drag&drop or select a file to play:</label>
<input type="file" id="uploadedFile"></input>
</div>
<div id="visualizer_wrapper">
<canvas id='canvas' width="800" height="350"></canvas>
</div>
</div>
<footer>
</footer>
<div class="audioPlayer">
<button type="button" class="play">play</button>
<button type="button" class="pause">pause</button>
<button type="button" class="playatTime">play at 35 seconds</button>
<button type="button" class="volumestop">Volume to 0</button>
<button type="button" class="volumeMax">Volume open</button>
这是我的控件在 javascript 文件上的位置,该文件位于完整源代码的第 125 行:https://jsfiddle.net/4hty6kak/5/由于某些原因,可视化工具无法在 jsfiddle 上运行,不知道为什么。所以我不确定人们将如何准确测试这个可视化工具,有什么好的替代方案吗?
_visualize: function(audioContext, buffer) {
var audioBufferSourceNode = audioContext.createBufferSource(),
analyser = audioContext.createAnalyser(),
that = this;
//connect the source to the analyser
audioBufferSourceNode.connect(analyser);
$('.play').click(function() {
audioBufferSourceNode.play();
});
$('.pause').click(function() {
audioBufferSourceNode.pause();
});
$('.volumeMax').click(function() {
audioBufferSourceNode.volume=1;
});
$('.volumestop').click(function() {
audioBufferSourceNode.volume=0;
});
$('.playatTime').click(function() {
audioBufferSourceNode.currentTime= 35;
audioBufferSourceNode.play();
});
//connect the analyser to the destination(the speaker), or we won't hear the sound
analyser.connect(audioContext.destination);
//then assign the buffer to the buffer source node
audioBufferSourceNode.buffer = buffer;
//play the source
if (!audioBufferSourceNode.start) {
audioBufferSourceNode.start = audioBufferSourceNode.noteOn //in old browsers use noteOn method
audioBufferSourceNode.stop = audioBufferSourceNode.noteOff //in old browsers use noteOn method
};
//stop the previous sound if any
if (this.animationId !== null) {
cancelAnimationFrame(this.animationId);
}
if (this.source !== null) {
this.source.stop(0);
}
audioBufferSourceNode.start(0);
this.status = 1;
this.source = audioBufferSourceNode;
audioBufferSourceNode.onended = function() {
that._audioEnd(that);
};
this._updateInfo('Playing ' + this.fileName, false);
this.info = 'Playing ' + this.fileName;
document.getElementById('fileWrapper').style.opacity = 0.2;
this._drawSpectrum(analyser);
},
完整代码:
https://jsfiddle.net/4hty6kak/5/
你有什么解决办法吗?
最佳答案
问题是双重的:
第一:在 JSFiddle 中,您必须确保包含正确的框架(我使用了 jQuery v1.11),并确保如果您的脚本尝试向 onload 添加任何内容,请将其包装在 head 或 body 中,但不要将 window.onload 事件包装在JSFiddle 的选项(默认情况下它在加载时运行所有内容)。
第二:您的代码中有一个拼写错误,您在定义事件时忘记拼写所有引用,就像在代码的其余部分中一样。
$('.play').click(function(){audioBufferSourceNode.play()});
应该是:
$('.play').click(function(){audioBufferSouceNode.play()});
请注意源代码中缺少的 R。您已将其定义为audioBufferSouceNode。
我发现在事件中更改它更容易,因为您在其他地方使用了相同的拼写错误。
我更新了您的 JSFiddle 以解决该问题:https://jsfiddle.net/4hty6kak/10/
关于javascript - 为什么我的 javascript 音频控件不能与 Web Audio API 配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31059180/
自定义限流注解 先介绍一下 @Retention 和 @Target 这两个元注解 @Retention: 指定注解的生命周期(源码、class文件、运行时),其参考值见类的定义:java.lang.
在 Ubuntu 13.10 中使用 PyCharm Community Edition 和 IdeaVim 时,键盘经常停止接受输入,我必须重新启动 IDE。当我单击不同的文本区域时,光标仍然会移动
我正在开发一个Java项目,我试图让useDelimiter删除除“=”和“,”之间的文本之外的所有内容。例如,在文件的第一行我想保留“ThermostatNight”。 文本文件如下所示: E
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
目录 1、加入 remember-me 2、原理分析 自动登录是我们在软件开发时一个非常常见的功能,例如我们登录 QQ 邮箱: 很多网站我们在登录的时
我是开发 Android 应用程序的菜鸟。我想问一下。我的 PreferenceActivity 如何希望在不返回 MainActivity 并再次转到 PreferenceActivity 的情况下
1. 前言 大家好,我是安果! 我们都知道 Python 可以用来开发桌面应用,一旦功能开发完成,最后打包的可执行文件体积大,并且使用 Python 开发桌面应用周期相对较长 假如想快速开
我正在为命令行应用程序编写一个非常简单的 GUI 工具。它只有 2 个按钮。 连接并退出。 在 applicationDidFinishLaunching 中,我运行以下命令 NSPipe *pipe
我也在 LibGDX forums 上发布了这个问题. 嘿那里!在我的论文中,我正在编写一个 DSL 来描述图片的外观。这些图片将由 libGDX 根据 DSL-Input 绘制。目前,jetbrai
准备 SpringBoot 工程 1.新建 SpringBoot 项目,默认的端口是 8080 ,新建 Controller 和 Mapping @RestControllerpublic cla
我有类似的问题 this one 以下是我使用的: CDH4.4(配置单元 0.10) protobuf-java-.2.4.1.jar elephant-bird-hive-4.6-SNAPSHOT
我想使用 angularjs 和 angular-ui(特别是 ui-select2 功能)实现对选择输入的读/写访问控制。 场景很简单:通过使用 ng-readonly 属性,我可以控制用户是否可以
我是一名优秀的程序员,十分优秀!