我最终想要做的是从用户的麦克风录制,并在完成后将文件上传到服务器.到目前为止,我已设法使用以下代码为元素创建流:
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)
我如何从那里,到录制到文件?
我有以下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)
但是,如果找不到行,它总是返回空结果.如何返回默认值?
我在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中的图像无效.我该怎么做才能正确保存图像?
我已经完成了你的标准检查(是那里的目录,设置了足够的权限),我很确定我已经涵盖了你的标准愚蠢的人类技巧.这是失败的代码:
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,我还能缺少什么?
我不想完全关闭调整大小,但textareas上的调整大小句柄不适合页面样式的其余部分.有没有办法可以改变它的外观,也许用我自己的形象取而代之?对于不支持HTML5的浏览器,不必具有向后兼容性.
我需要使用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.
假设我有一个包含一些值的表设置,包括名称,ID和引用另一个表的ID的外键.名称可以为null.当我从这个表中选择所有记录时,如果它不是null,我想得到它的名字.如果是,我想获取外键引用的记录的名称.我可以在必要时修改数据库结构,或者我可以简单地更改查询.我有什么选择?
使用来自https://nodejs.org的最新 node.js 安装程序,每次到达 npm 安装时我都会遇到相同的错误。npm 3.x 应该可以解决这个问题,但显然它对 node.js 安装程序没有帮助。节点开发人员基本上拒绝采取任何措施,因为这个问题已经存在大约两年了。不幸的是,我似乎找不到解决方法。我怎样才能安装这个?
假设我有一个如下的三次Bezier路径(格式化用于Raphael路径函数):
M55 246S55 247 55 248
只是一个例子.这是从我的绘图应用程序中获取的,当用户按住鼠标按钮时,我使用光标绘制一条线,有点像铅笔或标记.每次用户移动鼠标时,我都会使用jquery的mousemove事件在两点之间绘制线条.在绘制线之前还有另一个(参考点),因此可以创建贝塞尔曲线.
这是我的问题:是否有可能让Raphael只画出一条给定路径的一半?我知道getSubpath()函数,但如果我对Bezier曲线的理解是正确的,那么计算第二个参数就相当困难了.动画功能的问题在于它会创建双线(也就是说,它会创建我想要的曲线,以及不应该显示的围绕它的四四方向线,可能是因为鼠标的移动速度比动画可以处理的速度快).
当然,如果我的方法本身存在某些方面的缺陷(或者我对可能的解决方案的理解),我想听听它.任何帮助,将不胜感激.
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 …