摘要:
前言 柱状波形图是一种常见的图形。一个个柱子按顺序排列,构成一个波形图。 柱子的高度由输入数据决定。如果输入的是音频的音量,则可得到一个声波图。 在一些音频软件中,我们也可以左右拖动声波,来改变音频的播放进度 本文举例的自定View,实现如下功能: 以柱状形式展示数据的大小 标明图形当前最中间的数据 阅读全文
摘要:
查看本机的网络状态。使用netstat查看网络状态。显示系统端口使用情况。UDP类型的端口。TCP类型的端口。只显示所有监听端口。只显示所有监听tcp端口。 命令使用举例 | 命令 | 说明 | | : | : | | netstat -anp | 显示系统端口使用情况 | | netstat -n 阅读全文
摘要:
更多技术记录,请参考软件开发 | 编程 | RustFisher 为实现redis的高可用,我们采用主从模式加哨兵的方法。 一主二从三哨兵,共启动6个redis容器。本文示例在同一个服务器上进行操作。 开发环境 centos 假设ip地址为 x.x.x.1 docker 1.13.1 redis 7 阅读全文
摘要:
升降摄像头安卓手机刚上市的时候,有些很流行的app刚打开时,前置摄像头就升起来了。好像就是出来看一眼然后又收回去。 虽然我们不调用拍照功能,只是为了获取相机的信息,也是可能让摄像头升起来的。 Camera实现 使用android.hardware.Camera获取摄像头支持的预览尺寸和fps。 先C 阅读全文
摘要:
codec:编码译码器,编解码器。它是一个程序,也可以是算法,或者设备,用于编码(encode)和解码(decode)数据流。 WebRTC能让两个web或者app之间建立音视频通信。通信过程中,数据流的格式必须被两边的设备支持。 WebRTC提供了接口查询支持的codec,并且可以设置要使用的co 阅读全文
摘要:
市面上常见的摄像头悬浮窗,如微信、手机QQ的视频通话功能,有如下特点: 整屏页面能切换到一个小的悬浮窗 悬浮窗能运行在其他app上方 悬浮窗能跳回整屏页面,并且悬浮窗消失 我们探讨过用CameraX打开摄像头预览,结合可改变大小和浮动的activity,实现了应用内摄像头预览悬浮Activity。这 阅读全文
摘要:
悬浮窗能显示在其他应用上方。桌面系统例如Windows,macOS,Ubuntu,打开的程序能以窗口形式显示在屏幕上。 受限于屏幕大小,安卓系统中主要使用多任务切换的方式和分屏的方式。视频播放,视频对话可能会采用悬浮窗功能(例如手Q,微信的视频通话)。应用留下一个视频(通话)窗口,用户可以返回安卓桌 阅读全文
摘要:
用CameraX打开摄像头预览,显示在界面上。结合悬浮窗的功能。实现一个可拖动悬浮窗,实时预览摄像头的例子。 这个例子放进了单独的模块里。使用时注意gradle里的细微差别。 操作摄像头,打开预览。这部分代码与Android CameraX 打开摄像头预览相同。 悬浮窗相关代码与可拖动悬浮窗相同。在 阅读全文
摘要:
悬浮窗是一种比较常见的需求。例如把视频通话界面缩小成一个悬浮窗,然后用户可以在其他界面上处理事情。 本文给出一个简单的悬浮窗实现。可缩小activity和还原大小。可悬浮在其他activity上。使用TouchListener监听触摸事件,拖动悬浮窗。 本文链接 缩放方法 缩放activity需要使 阅读全文
摘要:
网络延迟是一种比较常见的情况。在本地网页上,我们可以建立多个RTCPeerConnection,增加转发次数,来模拟出网络延迟的效果。 建立通话后,再往后面增加本地转发节点。 准备 页面准备,方便我们后面调试 <div id="container"> <h1><a href="https://an. 阅读全文
摘要:
我们有时候在音频通话过程中,想要改成视频通话。如果挂断当前通话再重新发起视频通话就会显得比较麻烦。 因此很多app提供了将音频通话升级成视频通话的功能,同时也有将视频通话降为音频通话的功能。 本文演示的是在本地模拟音频通话,并且将音频通话升级为视频通话。 准备 界面很简单,2个video加上几个按钮 阅读全文
摘要:
WebRTC打开麦克风,获取音频,在网页上显示音量。 播放示例音频 先从播放音频入手。准备一个现成的音频文件。 界面上放一个audio元素,提前准备好一个音频文件,路径填入src <audio id="sample-audio" src="God_knows_01.mp3" controls aut 阅读全文
摘要:
Android CameraX获取视频帧。设置分析器以及分析器的各项参数。将获取到的视频帧数据存为文件。Android CameraX Analyzer ImageProxy YUV_420_888 to NV21 阅读全文
摘要:
目标很简单,用CameraX打开摄像头预览,实时显示在界面上。看看CameraX有没有Google说的那么好用。先按最简单的来,把预览显示出来。 引入依赖 模块gradle的一些配置,使用的Android SDK版本为31,启用了databinding apply plugin: 'com.andr 阅读全文
摘要:
前面我们能够打开摄像头。getUserMedia()时会传入参数,在参数里我们可以指定宽高信息。通过宽高参数控制输出的视频分辨率。 html 在页面上摆放一些元素,下面是主要部分 <div id="container"> <div id="buttons"> <button id="stop">停止 阅读全文
摘要:
WebRTC有分享屏幕的功能。使用的是getDisplayMedia方法。用户同意分享屏幕后,可以拿到视频流。 再结合MediaRecorder和Blob,把视频流数据存下来,就能得到录制屏幕的视频。 html 照例先来摆放一些元素在界面上 <div id="container"> <h3>WebR 阅读全文
摘要:
前面我们能打开本地摄像头,并且在网页上看到摄像头的预览图像。 本文我们使用MediaRecorder来录制视频。在网页上播放录制好的视频,并能提供下载功能。 html 首先创建一个html界面,放上一些元素 <video id="v1" playsinline autoplay muted></vi 阅读全文
摘要:
我们知道了如何使用WebRTC打开摄像头,可以截取视频帧并且用canvas显示出来。 本文将滤镜与视频结合。给视频加上一层滤镜。主要使用到的是filter属性。 canvas与滤镜 先来看filter与canvas的使用。先把canvas放好,显示一张本地的图片。 <canvas id="sampl 阅读全文
摘要:
WebRTC从摄像头获取图片传入canvas 前面我们已经能够利用WebRTC的功能,通过浏览器打开摄像头,并把预览的图像显示在video元素中。 接下来我们尝试从视频中截取某一帧,显示在界面上。 html 先准备一下界面,摆上控件。下面是关键部分的代码。 <video playsinline au 阅读全文
摘要:
本文使用WebRTC的功能,打开电脑上的摄像头,并且把摄像头预览到的图像显示出来。 纯网页实现,能支持除IE外的多数浏览器。手机浏览器也可用。 引入依赖 我们需要引入adapter-latest.js <script src="https://webrtc.github.io/adapter/ada 阅读全文