摘要:
几年前写了一篇Android SurfaceView 多线程绘图,多线程计算分形图案绘制到屏幕上,这种并行运算更适合用GPU处理。目前手机GPU有几百乃至上千个ALU运算单元,简单地说,相当于一个几百核的处理器,那么处理速度也就比CPU开启多线程快多了。 那么我们用OpenGL来实现一下,效果如下: 阅读全文
摘要:
相机处理是OpenGL一个重要的应用场景,因为OpenGL的主要工作是处理图像,而相机每秒生成几十帧图像,用GPU来处理再合适不过了。 至于Android CameraX和OpenGL的结合使用,网上有不少教程了,然而它们都有一个特点,就是给两者增加了不必要的耦合。由于两者本身架构都设计得非常好,实 阅读全文
摘要:
WebRTC安卓端没有官方教程,甚至连API文档都没有。这是一件奇怪的事,毕竟WebRTC是Google开发的。目前官方文档和Demo都只有web端的,虽然写得简单易懂,整体用法也和安卓端相同,但是具体细节还是有巨大的差异。 当然,仔细找Google和Github上还是能找到一些不错的教程,我这里将 阅读全文
摘要:
1. 格式说明 在安卓开发的一些场景,比如操作相机输出、视频编解码中会用到YUV图像格式。YUV中最常用的是YUV420格式,YUV420就是每4个Y分量共用一个U分量和一个V分量。 YUV420分为4种: I420: YYYYYYYY UU VV YV12:YYYYYYYY VV UU NV12: 阅读全文
摘要:
很早就看到过这种场景,用字符来展示图片甚至播放视频,可以说是黑客炫(zhuang)技(b)神器。当然有了一定的技术之后,就明白其实实现挺简单。 相机预览 首先是相机预览的实现,因为不是这里的重点,所以直接在Github上找到成熟的代码。Google官方的Demo当然是最好的: https://git 阅读全文
摘要:
上一篇完成了两个人在同一个手机中的模拟连接, 这一篇在此基础上给两个手机建立真正的连接. 这就需要一个信令服务器, 其实就是用来给双方交换信息, 并不需要对信息进行处理. 因此服务器和信息的数据格式都可以自己选择, 这里用官方Demo提供的Nodejs服务器, 用soket.io建立连接. 信令服务 阅读全文
摘要:
在上一篇中完成了WebRTC最基本的使用--相机的使用. 这一篇将介绍WebRTC中最核心的概念PeerConnection , 给同一手机中的前后摄像头建立虚拟的连接, 相互传输画面. PeerConnection PeerConnection也就是Peer-to-Peer connection( 阅读全文
摘要:
Android录制视频有多种方法:MediaRecorder, MediaProjection, MediaMuxer, OpenGL等,每种方法都有其应用场景。 这里介绍的是用MediaCodec + MediaMuxer录制视频,这种方式是将音频流和视频流用MediaCodec编码,然后用Med 阅读全文
摘要:
词云(WordCloud)是分析数据时一项有趣的展示方式, 它将数据中的关键词按权重设置不同的大小, 放置成一定的形状(比如圆形). 它包括关键词的统计提取和放置, 这里在安卓端实现一个放置词云的View. Google一下word cloud algorithm词云算法, 这里有介绍 https: 阅读全文
摘要:
多人视频有三种理论方案, 如下图所示, 从左到右分别是Mesh,SFU,MCU. Mesh 网格, 每个人都跟其他人单独建立连接. 4个人的情况下, 每个人建立3个连接, 也就是3个上传流和3个下载流. 此方案对客户端网络和计算能力要求最高, 对服务端没有特别要求. SFU(Selective Fo 阅读全文