【实例简介】该示例必须在 https环境下运行,否则会遇到意想不到的问题

【实例截图】

【核心代码】

MeidaRecorder

*{

box-sizing: border-box;

margin: 0;

padding: 0;

font-family:monospace;

}

html,body{

height: 100%;

}

html{

-webkit-font-smoothing: antialiased;

-moz-osx-font-smoothing: grayscale;

-ms-touch-action: pan-y;

background: #fff;

}

body{

margin: 0;

font-family: Arial,微软雅黑,黑体;

word-break: break-word;

color: #000;

position: relative;

}

h1,h2,h3,h4,h5,p{

margin: 0;

}

pre{

padding: 24px 28px;

}

a{

cursor: pointer;

text-decoration: none;

color: $main-blue;

outline: none !important;

-webkit-tap-highlight-color: rgba(0,0,0,0);

}

input, textarea{

outline: none !important;

-webkit-appearance: none;

border: 1px solid #ddd;

background: #fcfcfc;

color: #777;

&:focus{

border-color: #cfcfcf;

background: #fff;

color: #444;

}

&[readonly]{

border-color: #e0e0e0;

background: red;

color: #bbb;

}

}

input{

word-break: break-all;

}

label{

vertical-align: middle;

}

ul{

list-style: none;

margin: 0;

padding: 0;

}

hr{

margin: 0 auto;

border: none;

}

img{

border: none;

}

@media (max-width: 700px){

body:after{

content:"您的屏幕太小了";

position: absolute;

width: 100%;

text-align: center;

top: 20%;

font-size: 40px;

}

#app-main{

display: none;

}

}

录音设备:

录影设备:

视频宽 :

视频高 :

帧 率 :

开始预览

开始录制

停止录制

navigator.mediaDevices.enumerateDevices().then(function (data) {

data.forEach(function (item,index) {

if(item.kind=="audioinput"){

document.getElementById("audioDevice").innerHTML = "" (item.label||"设备" index) " "

}else if(item.kind=="videoinput"){

$("#videoDevice").append("" (item.label||"设备" index) " ")

}

})

console.log(data);

// body...

},function (error) {

alert("获取失败" error);

console.log(error);

})

var getUserMedia = navigator.webkitGetUserMedia;

var g_stream = null,g_recorder = null ;chunks = [];

function startPreview(){

getUserMedia.call(navigator, {

// "audio":true,

// "video":true

"audio":{"mandatory":{"sourceId":$("#audioDevice").val()}},

"video":{

"optional":[

{"minWidth":parseInt($("#videoWidth").val())},{"maxWidth":parseInt($("#videoWidth").val())},

{"minHeight":parseInt($("#videoHeight").val()) },{"maxHeight":parseInt($("#videoHeight").val())},

{"frameRate":parseInt($("#videoFrame").val()) }

],"mandatory":{

"sourceId":$("#videoDevice").val()

}

}

}, function(stream){

g_stream = stream;

//绑定本地媒体流到video标签用于输出

document.getElementById("video").src = URL.createObjectURL(stream);

$("#startPreview").attr("disabled","disabled");

$("#startRecording").removeAttr("disabled")

//向PeerConnection中加入需要发送的流

}, function(error){

//处理媒体流创建失败错误

});

}

var saveFile = function(url, filename){

var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a')

save_link.href = url;

save_link.download = filename;

var event = document.createEvent('MouseEvents');

event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);

save_link.dispatchEvent(event);

};

function stopRecording(){

g_recorder.stop();

var blob = new Blob(chunks, { 'type' : 'video/webm' });

var audioURL = URL.createObjectURL(blob);

window.open(audioURL);

$("#stopRecording").attr("disabled","disabled");

$("#startRecording").removeAttr("disabled");

chunks = [];

}

function startRecording(){

g_recorder = new MediaRecorder(g_stream,{ mimeType:'video/webm' });

g_recorder.ondataavailable = function(e) {

chunks.push(e.data);

}

g_recorder.onstop = function(e) {

var blob = new Blob(chunks, { 'type' : 'video/webm' });

var audioURL = URL.createObjectURL(blob);

saveFile(audioURL,"我的自拍.webm");

}

g_recorder.start();

$("#startRecording").attr("disabled","disabled");

$("#stopRecording").removeAttr("disabled")

}

html5视频页面的源码,html5 网页录制视频示例源码相关推荐

  1. HTML5高度还原复古24层魔塔网页版小游戏源码

    简介: HTML5高度还原复古24层魔塔网页版小游戏源码 网盘下载地址: http://kekewl.cc/OFfi6keX7OS0 图片:

  2. Html5的页面基本结构标签,HTML5:简介和文档基本结构

    1)HTML5:http://www.w3.org/TR/html5/ HTML5简介 HTML5实际上是一系列用来制作现代富Web内容的相关技术的总称,其中最重要的三项技术是HTML5核心规范.CS ...

  3. 个人空间html5主页面,2.HTML 教程- (HTML5 简介)

    HTML 教程- (HTML5 简介) 例: 菜鸟教程(runoob.com) 我的第一个标题 我的第一个段落. 实例解析 声明为 HTML5 文档 元素是 HTML 页面的根元素 定义网页编码格式为 ...

  4. qq互动视频页面加载失败_腾讯视频互动视频 | 创作指南

    # 腾讯视频互动视频 | 创作指南 互动视频是传统影视的一种新的表现形式,它可以是综艺.电视剧.电影.动漫等等,也可以是小视频.短视频,旨在通过多样的互动形态和互动表现手法,增强观看者的代入感. 我们 ...

  5. 网页视频服务器路径,win7网页缓存的视频在哪里?查看win7网页缓存视频位置的方法...

    我们在win7系统上用网页看过视频后,在一段时间内计算机是会留下缓存文件的,有时我们想找一部曾经看过的视频找不到了,或许就可以通过缓存找到想要的视频,那么win7网页缓存视频在哪里呢?下面由小编跟大家 ...

  6. qq录制视频保存到哪了?qq录制视频怎么没了?找回方法在这

    相信很多小伙伴都跟小编一样,使用qq录屏录制好后,结果就怎么也找不到录屏的文件了.经过小编一番研究,终于找到了qq录屏后视频文件的所保存的文件路径了.qq录制视频保存到哪了?别担心,下面小编就带大家一 ...

  7. html5给页面添加树叶特效,html5 canvas树叶光标动画特效

    特效描述:html5 canvas树叶 光标动画特效.html5 canvas虚幻的树叶光标动画. 代码结构 1. 引入JS 2. HTML代码 // Hold mouse down to enter ...

  8. html5登录页面自动记住密码,html5超简单的localStorage实现记住密码的功能实现

    HTML5 提供了两种在客户端存储数据的新方法: localStorage – 没有时间限制的数据存储 sessionStorage – 针对一个 session 的数据存储 之前,这些都是由 coo ...

  9. python爬虫代码实例源码_python 淘宝爬虫示例源码(抓取天猫数据)

    爬取淘宝 天猫网站数据# -*- coding: utf-8 -*- #!/usr/bin/env Python import dateTime import URLparse import sock ...

  10. PDF文件JAVA去水印源码,java pdf增加水印示例源码

    [实例简介] [实例截图] [核心代码] package com.test.main; import java.io.File; import java.io.FileOutputStream; im ...

最新文章

  1. NBT-19年2月刊4篇35分文章聚焦宏基因组研究
  2. 将字符串下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出
  3. 今天看了一下攒机配置 5000元以下 参考以下
  4. 『原创』再谈用 php 实现域名 whois 信息查询
  5. 定制android触控平板,Adobe发表六款Android平板用触控Apps,一套六款的工具组合
  6. mysql列别名引用_引用聚合列的MySQL别名
  7. java高校职工工资管理论文_毕业设计论文java大学工资管理系统
  8. javascript --- 异步函数的顺序进行
  9. SQL 中的unicode字符
  10. 腾讯、网易、新浪新闻网站爬虫编写记录及评论格式分析
  11. windows iphone 传输
  12. 关于Git GUI的使用方式
  13. (二)Nginx安装与配置
  14. STM32固件库的安装
  15. mysql中添加外键语句_数据库语句怎么加外键
  16. 什么是“决策表”?什么是“决策树”?
  17. MVC 音乐商店 第 7 部分: 会员资格和授权
  18. Lazy and Hungry
  19. java导出表格vsd_java 实现vsd转换为其它格式
  20. js调用打印,并且将页面缩放后进行打印,同时可自定义分页打印demo

热门文章

  1. AB Micro800编程环境CCW安装
  2. Ardino主控板控制雨滴传感器联动LED灯
  3. 视频压缩神器--小丸工具箱--小丸工具箱入门操作教程
  4. 推荐一些好用的Chrome插件
  5. vscode下载Visual Studio Code User System windows及 Mac安装文件下载
  6. Android简单实现百度地图显示及定位
  7. 使用eclipse配置adt
  8. u盘文件名乱码linux,科学网—u盘文件夹名称乱码,双击打开提示无法访问解决办法 - 芦红的博文...
  9. java 面试宝典总结
  10. cmd ntsd命令