第190-191篇 一对一录制按钮迁移合并成功及录制往生产上放

关键词:录制按钮迁移合并成功,录制往生产上放

一、一对一视频录制上生产

1.1 录制按钮迁移

1)在本地合并就成,已找到,用12854那个,如下:

1

2)现在思路

现在思路是index.html中引入录制白板的功能,它的一些需要参数,逐个获取如下:

首先获取canvas的尺寸如下:

这个思路不可行呀。

3)实现了,如下:

实现思路iframe获取父页面元素。

2

相关代码如下:

var recorder;

var _iframe =window.parent;

var _div=_iframe.document.getElementById(‘start_anwser‘);

_div.onclick =function() {

document.getElementById(‘start‘).disabled = true;

//-----------------------microphone+canvasrecording----------------------------begin------------//

navigator.mediaDevices.getUserMedia({

audio: true

}).then(function(microphone) {

var canvasStream = window.canvasElementToBeRecorded.captureStream();

//console.log(‘canvasStream0628: ‘,canvasStream);

microphone.getAudioTracks().forEach(function(audioTrack) {

canvasStream.addTrack(audioTrack);

});

// now you can record "canvasStream" which include"microphone" tracks as well

recorder = RecordRTC(canvasStream, {

type: ‘video‘

});

recorder.startRecording();

});

//-----------------------microphone+canvas recording----------------------------end------------//

setTimeout(function() {

document.getElementById(‘stop‘).disabled = false;

}, 1000);

};

注:有个感想是,做开发,要找出问题的症结,看能不能实现,有没有实现的先例,别乱搜,这个问题就是iframe读取父元素,搜其它的也没用。

4)怎么获取一个元素的属性?

能获取到了,如下:

var _iframe = window.parent;

var _div =_iframe.document.getElementById(‘start_anwser‘);

_div.onclick = function() {

if($(this).attr("t") == "start"){

console.log(‘ssssssssssssssssssssssssssssss‘,$(this).attr("t"));

//startRecordFun();

}else{

console.log(‘eeeeeeeeeeeeeeeeeeee‘,$(this).attr("t"));

}

}

5)iframe子页面获取父页面的方法不太好

主要是无法实现当开始计费变为结束答疑时,不能准确的获取其属性t=’start/end’,从而应用开始录制和停止录制。

现在采取的办法是:iframe父页面获取子页面的方法,如下:

参考网址:http://www.jb51.net/article/25629.htm

3

实现代码如下:-------------------index.html中

$("#start_anwser").click(function() {

//console.log("start_anwser");

if($(this).attr("t") == "start") {

canvasIframe.window.recorderStartQhz();

$(this).attr("t", "end");

$(this).children("p").children("img").attr("src","/static/img/close_c.png");

$(this).children("span").text("结束答疑");

startTutor();

} else if($(this).attr("t") == "end") {

canvasIframe.window.recorderStopQhz();

endTutor();

}

});

-------------------widget.html中:

functionrecorderStartQhz() {

var recorder;

document.getElementById(‘start-record-btn‘).disabled= true;

navigator.mediaDevices.getUserMedia({

audio: true

}).then(function(microphone) {

var canvasStream =window.canvasElementToBeRecorded.captureStream();

// console.log(‘window.canvasElementToBeRecorded:‘,window.canvasElementToBeRecorded);

//console.log(‘canvasStream0628: ‘,canvasStream);

microphone.getAudioTracks().forEach(function(audioTrack) {

canvasStream.addTrack(audioTrack);

});

// now you canrecord "canvasStream" which include "microphone" tracks aswell

recorder =RecordRTC(canvasStream, {

type: ‘video‘

});

recorder.startRecording();

});

setTimeout(function(){

document.getElementById(‘stop-record-btn‘).disabled = false;

}, 1000);

};

function recorderStopQhz(){

document.getElementById(‘stop-record-btn‘).disabled = true;

setTimeout(function() {

recorder.stopRecording(function() {

var timestamp =(new Date()).valueOf();

filename=‘17701328814‘+timestamp;

filen=‘qhz‘+timestamp;

console.log("this.getBlob()",this.getBlob());

this.save(filen);

//invokeSaveAsDialog(this.getBlob(), filename);

var blob =this.getBlob();

var video =document.createElement(‘video‘);

video.src =URL.createObjectURL(blob);

console.log(‘video.src-->‘,video.src);

video.setAttribute(‘style‘, ‘height: 100%;color:white; position:absolute; top:0; left:0;z-index:9999;width:100%;‘);

document.body.appendChild(video);

video.controls= true;

video.play();

});

}, 100);

};

-----------------------------canvas-designer-widget.js中:

designer.appendTo =function(parentNode) {

designer.iframe =document.createElement(‘iframe‘);

designer.iframe.name = ‘canvasIframe‘;

designer.iframe.src =designer.widgetHtmlURL + ‘?widgetJsURL=‘ + designer.widgetJsURL + ‘&tools=‘+ JSON.stringify(tools) + ‘&selectedIcon=‘ +selectedIcon+‘&recordflag=‘+designer.flag;

designer.iframe.style.width = ‘100%‘;

designer.iframe.style.height = ‘100%‘;

designer.iframe.style.border = 0;

console.log(‘iframe-qhz->: ‘,designer.iframe);

window.removeEventListener(‘message‘, onMessage);

window.addEventListener(‘message‘, onMessage, false);

parentNode.appendChild(designer.iframe);

};

1.2 往生产上合

1)文件夹比较如下:

4

2017年7月9-10日星期日至一

676字 两篇 378字/篇

时间: 2024-10-22 01:50:42

第190-191篇 一对一录制按钮迁移合并成功及录制往生产上放的相关文章

【金】第123篇 一对一视频录制(二)之btnStartRecording.onclick函数周三

关键词:一对一视频录制,btnStartRecording.onclick函数 一.一对一视频录制 1.1 参考网址 https://www.webrtc-experiment.com/RecordRTC/ 视频录制下载网址: https://github.com/muaz-khan/RecordRTC 1.2 研究下如下代码 我要的是如下这个: <scriptsrc="https://cdn.WebRTC-Experiment.com/RecordRTC.js"><

用仿ActionScript的语法来编写html5——第七篇,自定义按钮

第七篇,自定义按钮 这次弄个简单点的,自定义按钮.其实,有了前面所定义的LSprite,LBitmap等类,定义按钮就很方便了.下面是添加按钮的代码, function gameInit(event){ backLayer = new LSprite(); addChild(backLayer); btn01 = new LButton(new LBitmap(new LBitmapData(imglist["replay_button_up"])),new LBitmap(new L

cocos2dx基础篇(7)——菜单按钮CCMenu、CCMenuItem

[本节内容] 菜单按钮在游戏中是经常被用到的,比如主菜单界面的菜单选项,暂停游戏时的菜单选项等等.cocos2dx引擎同样为我们提供了CCMenu菜单的功能,并包含了一些简单的菜单项CCMenuItem.且菜单项附带触碰按钮时,自动放大的效果. 温馨提示:本节内容比较多,需要大家慢慢分析,不要急于求成. 本节组织结构如下: 一.介绍CCMenu. 二.介绍CCMenuItem,及其具体的六个子类. 三.代码实战. [一.菜单CCMenu] 菜单CCMenu是专门用来承载菜单按钮的CCLayer图

Cacti数据迁移必须成功版

环境:Centos6.4 32位.Apache,Mysql. 1,安装LAMP并且可以成功打开info.php#yum -y install httpd php php-mysql mysql mysql-server perl-DBD-MySQL php-pdo net-snmp net-snmp-libs net-snmp-utils net-snmp-devel ruby php-snmp ruby-devel rrdtool-ruby rrdtool-perl gcc gcc-c++ #

微软与开源干货对比篇_PHP和 ASP.NET在 Session实现和管理机制上差异

微软与开源干货对比篇_PHP和 ASP.NET在 Session实现和管理机制上差异 前言:由于开发人员要靠工具吃饭,可能和开发工具.语言.环境呆的时间比和老婆孩子亲人在一起的时间还多,所以每个人或多或少对自己吃饭的工具在感性上带有宗教情结,在理性上又受屁股决定大脑利益左右,这种比较一般都容易遭人争议, 这些比较不带任何偏见和感情色彩,主要是自己工作中记录在有道云笔记的经验日记主要是给I自己学习备查用,写得多了就有参考价值分享出来给需要的人参考,如果有任何争议本人不作辩解.这只代表本人自己的理解

【铜】第174-9篇 一对一视频录制(九)一对多学生端删除白板及nginx下配CI

关键词:webm文件在手机端播放, 一对多学生端删除白板, nginx下配CI 一.一对一视频录制 1.1.webm文件在手机端播放 1)在PC上 a.)用谷歌浏览器播放 http://123.57.206.36:8014/uploads/177013288141499069939723.webm 2)手机端播放 二.一对多 2.1 网址 1)备份上 老师端:https://123.57.206.36:9101/demos/index.html?roomid=888&teaNameMobile=

【上】第164-73篇 一对一canvas视频录制文件上传(八)周二-四

关键词:一对一canvas视频录制文件上传,修改录制视频的背景色,一对一稳定性研究 一.一对一视频录制 1.1改变录制文件背景色 1)网址 老师端:https://localhost:12854/demos/index.html 原版录制:http://127.0.0.1:9001/Canvas-Recording1/recCanvas.html 2)本地网址: http://localhost:9001/ 3)相关代码: a.) 获取轨迹代码 designer.toDataURL = func

【铜】第135篇 一对一视频录制(二)及必填项红色星标及隐藏index.php及必选项不能为空 周一

关键词:一对一视频录制, 必填项红色星标, 隐藏index.php, 必选项不能为空 一.一对一视频录制 1.1 需要做的 二.我的网站 2.1 必填项红色星标 代码如下: <spanstyle="color:red;">*</span> 效果如下: 2.2 隐藏index.php 1)开启mod_rewrite.so LoadModule rewrite_modulemodules/mod_rewrite.so 注:去掉前面的#,重启apache即可. 2)如

【铜】第124篇 一对一视频录制(三)及网站注册 周四

关键词:一对一视频录制,网站注册 一.一对一视频录制 1.1 参考网址 https://www.webrtc-experiment.com/RecordRTC/ 视频录制下载网址: https://github.com/muaz-khan/RecordRTC 1.2  网页录制 本地: http://localhost:9001/Canvas-Recording/webpage-recording.html 作者: https://www.webrtc-experiment.com/Record