
iOS
文章平均质量分 70
Niap.pr
邮箱:niap.pr@gmail.com
展开
-
使用iphone作为zoom会议的摄像头
如果你打开quick time,并且你把iphone通过数据线插到mac上,你会发现,quick time可以抓到iphone的画面!这时候,如果你打开摄像头,quick time就可以把iphone当成了摄像头来用了,其实,obs的虚拟摄像头就可以通过这样的方式来实现iphone的虚拟摄像头的。那么代码怎么写呢?CoreMediaIO如果你有兴趣,可以尝试用ffmpeg的设备列表命令(如下),你会发现,普通的列出设备的方法并不能找到iphone,但是quick time和obs都可以。这就要说到了.原创 2021-05-27 11:35:39 · 2368 阅读 · 0 评论 -
Swift的CoreAudio播放pcm文件
开发中会遇到在swift中播放内存中pcm音频的需求。常见的pcm格式有signed16bit,signed32bit,float32bit,在iOS和macOS中,有个avfundation下的core audio就是专门处理pcm格式音频的。从文件中读取pcm文件生成想要的pcm文件,参照我之前的文章生成三个文件,分别对应signed16bit,signed32bit,float32bit。开始一个swift项目,创建一个Controller,参照之前的文章把文件拉入到xcode项目中,.原创 2021-04-15 19:40:04 · 1232 阅读 · 0 评论 -
ffmpeg在iOS上的编译(动态库)与验证
ffmpeg在iOS上编译,github上有两个开源的编译脚本,https://github.com/tanersener/mobile-ffmpeg和https://github.com/kewlbear/FFmpeg-iOS-build-script,前者能变iOS和android,后者看名字就知道很专注。问题是,前者的iOS只能支持静态库(出处),好在后者编译起来挺方便的编译ffmpeg下载 https://github.com/kewlbear/FFmpeg-iOS-build-script.原创 2021-04-09 16:29:54 · 650 阅读 · 0 评论 -
Swift调用Objective-c调用C++的方法
iOS项目中的核心用c++的库,例如ffmpeg,那么如何在Swift中调用c++库就是一个大问题了。因为Objective-c和c++都是c体系,他们两之间的调用还算是方便。所以,要首先要解决的是Swift和objective-c之间的调用问题。Swift中调用Objective-c创建一个工程点击 file->new->file 添加一个 Header File ,起名为 FunctionFromOC,如下图所示:添加以下代码#ifndef FunctionFromOC.原创 2021-04-09 15:18:34 · 788 阅读 · 0 评论 -
Metal开发入门(四) 绘制渐变色
本文需要在第三节的基础上,绘制一个渐变色,效果如下,首先需要恢复到第三节的代码,删除Constants,timer等。丰富Vertex结构体添加以下机构,一个字段存储位置信息,另一个字段存储颜色信息。struct Vertex { var position:float3 var color:float4}对应的,VertexBuffer也需要修改vetextBuffer = device.makeBuffer(bytes: vetices, length: vetices.原创 2021-03-29 18:58:59 · 271 阅读 · 0 评论 -
Metal开发入门(三) 绘制动画
上一节交代了如何使用gpu绘制一个三角形,这一届会利用gpu来绘制一个简单的动画#首先绘制一个矩形在上一节的基础上,如果需要绘制一个矩形,只需要在原来的verices里面多添加几个定点即可,如下图所示,第一个三角形的定点是,v0,v1,v2,第二个是v2,v3,v0。 var vetices : [Float] = [ -1,1,0, -1,-1,0, 1,-1,0, 1,-1,0, 1,1,0, -1,1,0]使用index来减少.原创 2021-03-29 16:02:22 · 657 阅读 · 0 评论 -
Metal开发入门(二)绘制三角形
GPU在绘制的时候,只会去绘制线和三角形。绘制线段比较好理解,但是为啥是三角形,因为,三角形是在二维平面中利用最少的点就能绘制出来的图形。而且,它可以很容易的切割成两个。本文就是使用Metal来绘制一个三角形Metal绘制的过程大体上分为两个部分,一个部分是在整体初始化的过程中,初始化的过程主要是编译metal文件,取得三角形定点和整体的着色函数shader,着色函数和颜色格式组成了一个叫做piplineDescriptor的对象,通过piplineDescriptor即可生成一个piplineSt.原创 2021-03-29 14:34:33 · 472 阅读 · 0 评论 -
Metal开发入门(一)Hello Metal
环境:macOS 11 iOS14 swift4 xcode12项目准备新建一个iOS项目,值得注意的是:life Cycle请选择 UIKit App Delegate,后续因为需要从UIView中集成,项目还需要做一些变化。删除 AppDelegate.swift中关于SceneDeleagete的相关函数,添加一个成员变量window类型为UIWindow。删除info.plist中关于Scene Manifest的配置,添加一个storyboard。命名为main.storyboard,.原创 2021-03-29 09:13:45 · 1470 阅读 · 1 评论 -
Breakpad在mac/ios上的跨平台的调用方式
在项目中,需要使用到Breakpad作为crash的coredump工具,希望breakpad能以静态或动态库的方式集成到项目中来,但是,在研究中发现,breakpad在每个平台上都有一个特有的工程,且生成出来的文件,每个平台都不一样。Breakpad Mac项目简介路径在:breakpad/src/client/mac ,使用xcode打开Breakpad.xcodeproj后,看到一下内容:可以看出,整个项目是的核心就是输出一个breakpad.framework。...原创 2020-12-28 14:14:07 · 1006 阅读 · 7 评论