墨晓云

云端咖啡猫

dotnet 使用 Cefsharp 支持 H.264 视频

说明

在项目 nuget 上引用的包,默认是不支持 H.264 视频的,因此需要一系列复杂的手段,重新编译 chromium。
此处已经编译成功了 chromium,32 位,版本号是 96.0.4664.110。

项目引用 CefSharp

在 nuget 上,引用 CefSharp 包,版本 96.0.180

替换 libcef.dll

  • 使用 32 位,编译项目
  • 编译后,替换核心文件 libcef.dll
  • 使用 https://html5test.com/ 测试,查看 H.264 是否支持。

使用 Worker 对文件上传

web worker 多线程

相关 web worker api 接口,可参考:
https://developer.mozilla.org/zh-CN/docs/Web/API/Worker

通过 worker 可以创建后台任务,任务中可向其创建者发送和接受消息。

创建 web Worker

通过 js 路径,创建一个 worker 实例,然后向子线程发送 base64,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
const reader = new FileReader()
reader.readAsDataURL(blob) //blob 转 base64
// 创建 woker 实例,加载一个单独的 js 文件
const pdfWorker = new Worker('./pdfWorker.js')
reader.onload = function (e) {
pdfWorker.postMessage({
url: pdfUploadUrl, // 需要上传服务器的url地址
blob: e.target.result, // base64文件
fileName, // 文件名
docType, // 所需的参数
token, // 所需要的 token
})
}
阅读全文 »

Jenkins 批量删除构建历史

Jenkins 每次构建,都会生成 jar/war 包,存储在硬盘上,Jenkins 运行久了之后,jar/war 包会占用大量硬盘内存,增大服务器压力,因此可以使用脚本批量删除历史构建

代码

在 jenkins 中,使用以下脚本运行

1
2
3
4
5
6
7
8
9
10
//项目名称
def jobName = "Job Name"
//删除小于30的构建历史
def maxNumber = 30

Jenkins.instance.getItemByFullName(jobName).builds.findAll {
it.number <= maxNumber
}.each {
it.delete()
}

步骤如下….

阅读全文 »

基于 WebRTC 点对点视频通话解决方案

技术支持

  • 基于 WebRTC,实现点对点视频通话
  • 使用 signalr,发送即时消息

视频通话

视频通话

发送即时消息

使用facade-signalr-client发送即时消息

1
yarn add facade-signalr-client
阅读全文 »

时光倒数微信小程序

设定一个日期,每天计算天数,并日程提醒。

使用微信扫一扫

介绍

每天都有不一样的意义,记录并分享,共同留下美好的回忆。

界面截图

0%