小编Fib*_*con的帖子

HTML5录制音频到文件

我最终想要做的是从用户的麦克风录制,并在完成后将文件上传到服务器.到目前为止,我已设法使用以下代码为元素创建流:

var audio = document.getElementById("audio_preview");

navigator.getUserMedia  = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
navigator.getUserMedia({video: false, audio: true}, function(stream) {
   audio.src = window.URL.createObjectURL(stream);
}, onRecordFail);

var onRecordFail = function (e) {
   console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

我如何从那里,到录制到文件?

javascript html5 audio-recording html5-audio

117
推荐指数
8
解决办法
20万
查看次数

如果未找到任何行,则返回默认值

我有以下select语句,以获取流的下一个计划项.如果没有匹配的行,我希望它返回默认值.这是我正在使用的线:

SELECT `file` FROM `show`, `schedule` 
   WHERE `channel` = 1 AND `start_time` <= UNIX_TIMESTAMP() 
   AND `start_time` > UNIX_TIMESTAMP()-1800 AND `show`.`id` = `schedule`.`file` 
   ORDER BY `start_time` DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)

这应该抓住最近计划的项目,但不是如果它超过查询前30分钟.但是,如果用户没有安排任何内容,我想要一个默认值,以便在流上实际播放某些内容.我尝试过以下方法:

SELECT COALESCE(`file`, 'default.webm') FROM `show`, `schedule`...
Run Code Online (Sandbox Code Playgroud)

和:

SELECT IFNULL(`file`, 'default.webm') FROM `show`, `schedule`
Run Code Online (Sandbox Code Playgroud)

但是,如果找不到行,它总是返回空结果.如何返回默认值?

mysql select default

18
推荐指数
2
解决办法
3万
查看次数

从zip中以画布保存图像

我在HTML5中有一个画布,最终可能会成为一个非常长的dataURL(如果他们尝试导航到chrome,则足以崩溃).因此,我正在尝试使用JSZip将图像保存为zip.我尝试了以下两件事:

var zip = new JSZip();
var savable = new Image();
savable.src = canvas.toDataURL();
zip.file("image.png", savable, {base64: true});
var content = zip.generate();
var blobLink = document.getElementById('blob');
blobLink.download = "image.zip";
blobLink.href = window.URL.createObjectURL(zip.generate({type:"blob"}));
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

Uncaught TypeError: Object #<HTMLImageElement> has no method 'replace'
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

var zip = new JSZip();
zip.file("image.png", canvas.toDataURL(), {base64: true});
var content = zip.generate();
var blobLink = document.getElementById('blob');
blobLink.download = "image.zip";
blobLink.href = window.URL.createObjectURL(zip.generate({type:"blob"}));
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但是zip中的图像无效.我该怎么做才能正确保存图像?

javascript html5 canvas image

12
推荐指数
1
解决办法
4215
查看次数

move_uploaded_file()无法打开流:没有这样的文件或目录

我已经完成了你的标准检查(是那里的目录,设置了足够的权限),我很确定我已经涵盖了你的标准愚蠢的人类技巧.这是失败的代码:

move_uploaded_file($_FILES['image1']['tmp_name'], "/public_html/flashsale/assets/img/products/T".$_FILES['image1']['name']);
Run Code Online (Sandbox Code Playgroud)

目录在那里 - 我从FileZilla复制了路径.我甚至在FileZilla和HostGator控制面板上的文件管理器中将权限设置为777.此代码生成两个警告:

消息:move_uploaded_file(/public_html/flashsale/assets/img/products/Tsirloin.jpg)[function.move-uploaded-file]:无法打开流:没有这样的文件或目录

消息:move_uploaded_file()[function.move-uploaded-file]:无法将'/ tmp/phpI5GZ3S'移动到'/public_html/flashsale/assets/img/products/Tsirloin.jpg'

以该顺序.因此,文件正在上传,目录存在并设置为777,我还能缺少什么?

php file-upload

11
推荐指数
2
解决办法
6万
查看次数

HTML5/CSS3 - 更改调整大小句柄的外观

我不想完全关闭调整大小,但textareas上的调整大小句柄不适合页面样式的其余部分.有没有办法可以改变它的外观,也许用我自己的形象取而代之?对于不支持HTML5的浏览器,不必具有向后兼容性.

html5 textarea css3

10
推荐指数
2
解决办法
1万
查看次数

在javascript中压缩blob

我需要使用ajax将blob发送到服务器,但它最终会变得有点大,我想减少上传时间.我已经尝试过jszip了,但是这只是在zip中给了我一个空文件.我也尝试了btoa(),但事实证明编码值最终只是[object Blob]而不是实际的blob数据.压缩blob有哪些选择?

这是我用于jszip的代码:

var zip = new JSZip();
zip.file("recording.wav", blobFile);
var content = zip.generate();
Run Code Online (Sandbox Code Playgroud)

然后我将"content"附加到FormData对象并将其发送到服务器.在服务器端,我解码了POST数据(来自base64).zip文件打开很好,但recording.wav是一个0长度的文件.

另外,我尝试过使用此处的LZW实现.这是我用来压缩它的附加代码:

var compressed;
var reader = new FileReader();
reader.onload = function(event){
   compressed = LZW.compress(event.target.result);
};
reader.readAsText(blobFile);
Run Code Online (Sandbox Code Playgroud)

但是,解压缩它会返回null.

javascript compression blob

9
推荐指数
1
解决办法
1万
查看次数

MySQL - 如果column为null,则从另一个表中检索值

假设我有一个包含一些值的表设置,包括名称,ID和引用另一个表的ID的外键.名称可以为null.当我从这个表中选择所有记录时,如果它不是null,我想得到它的名字.如果是,我想获取外键引用的记录的名称.我可以在必要时修改数据库结构,或者我可以简单地更改查询.我有什么选择?

mysql sql select

7
推荐指数
1
解决办法
9542
查看次数

Windows 7下无法安装node.js:“指定路径太长”

使用来自https://nodejs.org的最新 node.js 安装程序,每次到达 npm 安装时我都会遇到相同的错误。npm 3.x 应该可以解决这个问题,但显然它对 node.js 安装程序没有帮助。节点开发人员基本上拒绝采取任何措施,因为这个问题已经存在大约两年了。不幸的是,我似乎找不到解决方法。我怎样才能安装这个?

windows node.js

6
推荐指数
1
解决办法
3065
查看次数

在拉斐尔画一半Bezier路径

假设我有一个如下的三次Bezier路径(格式化用于Raphael路径函数):

M55 246S55 247 55 248

只是一个例子.这是从我的绘图应用程序中获取的,当用户按住鼠标按钮时,我使用光标绘制一条线,有点像铅笔或标记.每次用户移动鼠标时,我都会使用jquery的mousemove事件在两点之间绘制线条.在绘制线之前还有另一个(参考点),因此可以创建贝塞尔曲线.

这是我的问题:是否有可能让Raphael只画出一条给定路径的一半?我知道getSubpath()函数,但如果我对Bezier曲线的理解是正确的,那么计算第二个参数就相当困难了.动画功能的问题在于它会创建双线(也就是说,它会创建我想要的曲线,以及不应该显示的围绕它的四四方向线,可能是因为鼠标的移动速度比动画可以处理的速度快).

当然,如果我的方法本身存在某些方面的缺陷(或者我对可能的解决方案的理解),我想听听它.任何帮助,将不胜感激.

javascript jquery svg bezier raphael

5
推荐指数
1
解决办法
2920
查看次数

SVG - How do I cut a <path> in half?

I need to cut an existing path (curve) at a specific point in javascript. For example, if I have the following path:

<path stroke-width="3"
      stroke="black"
      stroke-linecap="round"
      stroke-linejoin="round"
      id="line_test"
      d="M125,165 C125,165 125,164 125,164">
</path>
Run Code Online (Sandbox Code Playgroud)

From that, I could get the midpoint like so:

var line = document.getElementById("line_test");
var length = line.getTotalLength();
var midpoint = line.getPointAtLength(length/2);
Run Code Online (Sandbox Code Playgroud)

Once I get that midpoint, I want to remove the rest of the path completely. Is there a function that will allow me to get a …

javascript svg drawing

5
推荐指数
1
解决办法
1737
查看次数