自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (10)
  • 收藏
  • 关注

原创 五.音视频编辑-音频混合-应用

通过本文,我们深入探讨了音频混合技术在实际应用中的应用。我们从一个具体的应用场景出发,逐步介绍了如何利用AVFoundation框架中的音频混合功能来解决特定问题。希望通过本文的阅读,您对音频混合技术有了更深入的了解,并能够将其应用到您自己的项目中。音频混合不仅可以为您的应用增添新的功能和特色,还可以提升用户体验,为用户带来更加丰富的视听享受。下面一篇博客我们会介绍到关于媒体编辑最复杂的部分,创建视频过渡效果。PHEditorPlayer: AV Foundation 音视频编辑。

2024-04-22 09:15:04 715

原创 四.音视频编辑-音频混合-概述

在本文中,我们深入探讨了使用AVFoundation进行音频混合的相关类和方案。我们介绍了核心概念,包括AVAudioMix,AVMutableAudioMix,AVAudioMixInputParameters,AVMutableAudioMixInputParameters等类的使用场景。通过提供一个简单的实例,我们演示了如何在实际项目中应用这些技术。希望本文能为您提供清晰的指导,并激发您在自己的应用程序中尝试音频混合的想法。

2024-04-15 09:46:23 698

原创 三.音视频编辑-媒体组合-导出

学习AV Foundation的编辑功能,其中最重要的一点就是熟练掌握CMTime和CMTimeRange的知识,需要对相关知识多加练习。现在我们应用已经具备了创建组合和导出组合的功能,下面的博客我们将继续讨论如何先剪切编辑,处理音频等诸多高级功能。

2024-04-08 10:03:41 1227

原创 二.音视频编辑-媒体组合-播放

媒体组合类关系上图是关于媒体功能中的核心类,以及类直接的关系图。有关资源组合的功能就源于AVAsset的子类AVComposition。一个组合就是将多种媒体资源组合成一个自定义的临时排列,再将这个临时排列视为一个可呈现的独立媒体项目。就比如AVAsset对象,组合相当于包含了一个或多个给定类型的媒体轨道的容器。AVComposition中的轨道都是AVAssetTrack的子类AVCompositionTrack。

2024-04-01 09:15:45 837

原创 一.音视频编辑 - 功能概述

本篇博客就来介绍一下音视频编辑所涉及的功能和简单实现。在本篇博客中,我们探讨了iOS平台上音视频编辑的一些基础概念和技术。通过媒体组合,混合音频,添加过渡效果和动画图层等技术,我们可以为用户提供更加丰富和生动的音视频体验。音视频编辑在移动应用开发中扮演着重要角色,它为开发者提供了无限的创作可能性,使得我们可以创造出更加引人入胜的应用程序。希望本篇博客能够为你提供一些有用的信息,并激发你对音视频编辑技术的进一步探索和应用。期待在未来的技术探索中,我们能够共同创造出更加出色的应用和体验!

2024-03-26 09:15:46 1087

原创 八.AV Foundation 视频播放 - 通过手势控制播放器

在本文中,我们介绍了iOS视频播放器中常见的手势控制功能,涵盖了滑动、单击、双击,拖拽等操作方式,以及它们在提升用户体验方面的作用。然而,要实现这些功能并不仅限于博客中所述的方法。iOS开发者可以根据自己的项目需求和用户反馈,采用不同的技术和实现方式来打造更加优秀的视频播放器。

2024-03-18 09:13:32 563

原创 七.AV Foundation 视频播放 - 图片进度条

在本文中,我们探讨了如何在 iOS 应用程序中实现图片进度条的功能,以提升用户体验。通过使用 AVFoundation 框架中的 AVAssetImageGenerator 类,我们能够轻松地从视频中获取指定时间点的图像,并将其应用于进度条的展示中。这个小小的功能不仅使用户能够更直观地预览视频内容,还为应用程序增添了更多的交互性和便利性。当然,除了本文介绍的方法外,还有许多其他的技术和功能可以进一步改进和丰富应用程序的视频播放体验。希望本文能够为您提供一些启发,并在您的开发工作中发挥一定的作用。

2024-03-07 19:01:48 792

原创 程序员的职业路径:如何选择适合自己的职业方向?

在当今数字化时代,作为一名程序员,选择正确的职业赛道至关重要。随着技术的迅速发展和市场的竞争加剧,程序员们需要认真思考自己的职业方向,并做出明智的决策。

2024-03-07 19:01:36 167

原创 六.AV Foundation 视频播放 - 播放结束

当涉及到处理视频资源播放结束时,通常需要根据具体业务需求进行相应的处理。不同的播放器可能采取不同的策略,如返回播放列表、自动播放下一个视频,或者简单地显示播放结束状态。无论采取何种处理方式,我们都必须注意维护良好的页面显示状态和播放控制器的销毁,以避免可能导致内存泄漏的问题。确保页面的显示状态正确反映了视频播放的结束状态,同时及时释放播放控制器等资源是至关重要的。这可以通过有效的事件处理和资源管理来实现。当视频播放结束时,我们应该清理不再需要的资源,例如关闭播放器或者更新页面UI以显示适当的结束状态。

2024-03-01 08:29:54 602

原创 五.AV Foundation 视频播放 - 标题和字幕

显示标题和字幕的功能就完成了,主要就是读取AVAsset资源中的元数据并同步到视频播放的过程中,播放器的整体用户体验有了进一步的提升。到目前为止我们在处理的都是播放过程中是逻辑,但关于视频播放结束的处理也同样重要,下一篇博客就专门来介绍关于视频资源播放结束逻辑的实现。

2024-02-25 20:58:57 955 2

原创 我的创作纪念日

我的日常通常是这样度过的:白天,我是一名普通的IT从业者,处理各种工作任务,与客户沟通需求,与团队协作完成项目。我相信,在未来的日子里,我会在IT领域创作出更多的精彩内容,为这个世界增添更多的色彩和价值。在数字化浪潮席卷全球的今天,我意识到,掌握技术、特别是IT技术,不仅是个人发展的需要,也是为社会贡献的一种方式。于是,我开始自学编程,从基础的编程语言到复杂的数据结构,每一步都充满了挑战与乐趣。每一次项目的成功,每一次代码的完美运行,都让我感到无比的满足和自豪。我的开源项目也得到了社区的认可和支持。

2024-02-19 09:25:53 282

原创 四.AV Foundation 视频播放 - 进度同步

同步播放进度的整体代码并不复杂,值得注意的是我们不能使用KVO来监听播放器的播放时间,因为这些信息需要非常高的精确度,比键值监听要求要高。更不能开始定时器自己来处理播放进度的时间,会产生很大的误差。现在播放器已经与大多数视频播放器一样,具备了所有的播放器功能。但视频的标题,视频的字幕还没有显示出来,下一篇我们来处理这两组元数据,将标题和字幕显示到播放器中。PHPlayer: 视频播放器。

2024-02-18 11:56:54 529

原创 三.AV Foundation 视频播放 - 播放控制

了解了AV Foundation中的时间处理方式之后,接下来我们就开始为播放器定义一些播放,暂停,快进等基本功能。首先创建一个名为PHPlayerDelegate协议,将播放器需要实现的功能定义到协议中。/// 播放///暂停/// 停止/// 开始拖拽/// 拖拽过程/// 停止拖拽使我们的播放控制器PHPlayerController遵循协议并实现协议方法。1.播放:直接调用AVPlayer的同名方法。/// 播放2.暂停:直接调用AVPlayer的同名方法。/// 暂停。

2024-02-12 18:21:15 623

原创 二.AV Foundation 视频播放 - 创建播放器

然而,实际使用视频播放器时,我们通常不会采用类似的写法,而是更倾向于构建一个完整、可重用的播放组件。1.在PHPlayerController中定义了一系列的视频播放使用的对象,还有视频播放视图PHPlayerView的实例,以及一个只读属性view返回播放视图。视频控制器里面封装了我们创建的播放器组件的所有功能,也是我们处理系统核心播放API的地方。使用的代码并不多,但我们的确已经实现了一个可以播放的视频组件,下面我们会逐步的往组件中添加播放,暂停,快进等各种提升用户体验的功能。方法来进行视频播放。

2024-02-04 19:27:08 785

原创 一.AV Foundation 视频播放 - 功能综述

通过这篇博客,我们初步认识了iOS中播放器的核心类,以及通过一个简单的播放实例感受了其基本功能。在接下来的系列文章中,我们将深入挖掘播放功能的方方面面。我们将探讨更多高级功能,解析优化策略,以及介绍一些常见的问题和解决方案。如果你有任何问题或建议,欢迎在评论区留言,我们期待在未来的文章中为你解答疑惑。敬请期待下一篇深度剖析!

2024-02-04 10:17:03 967

原创 AV Foundation 视频播放中的可视拖拽进度条

AVAsset在整个AV Foundation框架中都是一个十分核心的类,是一个抽象的不可变类,它定义了媒体资混合呈现方式,将媒体资源的静态属性模块化成一个整体。添加预览画面floatImageView,添加后先设置为隐藏状态,并且也没有设置它的位置及大小信息,因为我们会根据拖拽的进度条来设置floatImageView的位置。配置预览画面主要有两个需要注意的事项,配置视图的frame以及预览的内容,我们来看一下他们的实现。那么它是如何实现的呢,接下来我们以播放中常见的两种展现形式来介绍一下它的实现方式。

2024-01-28 21:24:14 693

原创 iOS中的视频播放

AV Kit从iOS 8开始被引入到iOS平台,是一个非常简单的标准框架,只包含了一个AVPlayerViewContoller类。它继承自UIViewController,用于展示和控制AVPlayer实例的播放。player:用来播放媒体内容的AVPlayer实例。showsPlayebackControls:用来表示播放器中控制控件是否显示。videoGravity:设置视频的填充方式。readyForDisplay:通过观察这个值来确定视频内容是否已经准备好进行播放。

2024-01-20 18:16:49 934

原创 媒体捕捉-iOS中的人脸识别

配置会话:配置AVCaptureSession,添加AVCaptureDeviceInput,添加AVCaptureOutput启动会话:AVCaptureSession startRunning停止会话(如果需要)AVCaptureSession stopRunning。具体实现在这里就贴代码了,有需要可以查看这篇文章媒体捕捉-iOS自定义二维码扫描功能-CSDN博客。以上就是使用AV Foundation进行人脸检测的所有关键步骤,已经实现了一个比较粗糙的人脸识别的用户界面。

2024-01-14 18:33:20 1055

原创 媒体捕捉-iOS自定义二维码扫描功能

/MARK:当前显示画面layer当我们深入研究了上述简单的二维码扫描示例后,我们不禁会发现这只是冰山一角。iOS提供了丰富的功能和灵活的接口,让我们能够进一步深挖二维码扫描的世界。举例来说,我们可以定义扫描范围,通过调整参数来适应各种应用场景,从而提高扫描的精准度和效率。此外,iOS还支持各种花哨的识别效果,可以为用户提供更为生动和愉悦的扫描体验。通过巧妙运用动画、声音等元素,我们能够使二维码扫描不仅仅是一项实用的功能,更是一种与用户互动的方式。

2024-01-07 19:11:00 988

原创 媒体捕捉-拍照

媒体捕捉主要类首先介绍一下主要类:AVCaptureDevice:捕捉设备。相对手机而言,它是摄像头,麦克风等物理设备定义了一个接口。AVCaptureDeviceInput:捕捉设备的输入。捕捉设备不能直接添加到会话中,需要封装在AVCaptureDeviceInput中再进行添加。AVCaptureSession:捕捉会话。捕获会话是整个功能的核心,有用链接输入和输出,配置捕捉环境。AVCaptureOutput:捕捉的输出。

2024-01-01 20:41:49 1343

原创 iOS中常见的内存泄漏,及避免泄漏的最佳方案

内存泄漏是指在程序运行时,由于错误的内存管理,分配的内存空间无法被正常释放,导致系统中的可用内存逐渐减少,最终可能导致应用程序性能下降甚至崩溃的问题。iOS中的内存管理机制是依赖引用计数进行自动管理,而引用计数的最大缺陷就在于它不能处理环状的引用关系。

2023-12-24 19:59:39 1470

原创 iOS中使用ReplayKit扩展进行屏幕录制的注意事项(丢帧,补帧,及帧率控制)

ReplayKit 解决50M内存限制的控制帧率和丢帧方案。

2023-12-24 18:24:25 635

原创 iOS中宿主APP与录屏扩展进程数据传递方式

进程间数据传递

2023-12-19 10:09:54 1144

原创 关于个人开发者APP上架ICP备案问题。

APP备案

2023-12-17 10:28:32 629

原创 alloc流程图

2021-07-16 17:17:32 197

原创 iOS 内购开(发者账号部分)

一.设置税务,银行业务和联系信息1.登录开放者账号后进入App Store Connect点击 协议.税务和银行业务(进入界面后会发现付费app的状态为新,或者已有状态,需要更新点击后面的内容便可)2.同意条款3.设置税务、银行业务和联系信息(1)添加银行账号银行名称需要用英文,将银行全名输入百度就可以查找到应为 所在国家或地区直接拉到最后选择中国大陆 ABA汇款路线号码,点击下面的黄字,输入银行名称(英文),城市名称(英文),查找到对应的开户行,实在没有就先选一

2021-01-16 14:31:31 1526

原创 iOS内购(代码部分,swift)

一.创建支付类1.创建一个类继承NSObject为内购付款类import UIKitclass AppPayManager: NSObject {}2.类内引入头文件import StoreKit3.实现单利,方便支付结果的回调let payManager = AppPayManager() class var shareInstance : AppPayManager { return payManager}二.发起购买请求1.发起购

2021-01-15 10:02:01 2157 1

原创 阿里云服务器安装jdk(Mac)

一.准备工具1.jdk下载最新版本jdkhttps://www.oracle.com/java/technologies/javase-jdk8-downloads.html2.FillZilla二.使用FillZilla连接远程服务器1.输入主机地址登录阿里云,打开到我的资源输入公网IP2.用户名3.密码点击到实例列表,找到对应的实例 点击更多,点击重置实例密码4.端口点击到实例详情,点击右上角配置安全组规则,或是直接点击安全组,到达安全组列表,..

2021-01-11 11:01:37 370 3

原创 Flutter - 卡在 Running “flutter pub get“ in xxx ,解决方案

这个问题搜出来会有大把答案,但都是让你设置镜像,删除什么东西,可能也都解决了他们的问题所以分享给了大家。但如果你每一步都按照教程走了,执行flutter doctor 的时候也提示全都正确了,仍然会卡在这里。我下载的是1.17.3每次执行flutter create都会卡住,更换成v.12.13也就是图片上最后一个后便成功了,希望能帮到大家!...

2020-07-21 16:43:35 2864

原创 iOS13 微信,QQ三方登录没有效果,不执行代理方法解决方案

一微信参照微信开放平台进行项目设置比起以往多的步骤就是设置universalLink,及apple-app-site-association的生成和上传,这个可以自行百度搜索结果还是很多的,记得文件不加后缀名就行了。做好准备工作后在Appdelegate中进行注册及回调方法的处理WXApi.registerApp("appkey", universalLink: "universalLink")两个双引号内容根据自己项目填写func application(_ applicat.

2020-05-29 16:03:18 1880 4

原创 UIScrollView实现推荐电影轮播图(中心放大)

适合图片个数有限的情况,如果是很多或无限个不停加载建议使用UICollectionView实现。1.主要实现原理是根据UIImageView的中心点距离UIScrollView中心的距离进行放大缩小。距离中心点UIImageView的size大小时越近则放的比例越大,越远则放大比例越小,最远距离则为size的宽,当超出这个距离则按原尺寸显示。CGPoint point_s = [se...

2019-10-24 16:27:32 971

原创 Glide加载网络图片模糊变形问题解决办法

需求:加载一张网络图片,宽度充满屏幕高度按照图片比例进行显示 <ImageView android:id="@+id/iv_details_pic" android:layout_width="match_parent" android:layout_height="wrap_...

2019-10-22 17:05:13 2207

翻译 使用Instruments测量电量消耗因素

使用xcode测量电量使用情况如果需要更深入的分析电量使用情况就要使用instruments测量工具,instruments可以从运行中的应用程序中收集数据,并且以图形时间轴的行驶展示出来。可以收集有关性能领域的数据,入CPU的使用,磁盘活动,网络活动和图形操作。通过这些数据可以分析应用程序性能的不同方面,以确定可能需要调整的地方。一、使用模拟器或数据线连接测试机进行跟踪Energy ...

2019-10-16 14:16:17 702

翻译 使用Xcode测量APP电量使用情况

使用Instruments测量应用电量使用情况在使用instruments分析一个应用耗能问题之前,可以先参考Xcode的调试指示器,了解如何测试和调试您的应用程序可以帮助您确定潜在的能源问题和需要改进的领域。通过在应用程序运行时记录跟踪消息,活动跟踪还可以更快、更容易地找到bug。在开发应用程序时Xcode包含了许多诊断应用电量使用情况的数据,Xcode调试导航栏提供了一系列的指示器,可...

2019-10-16 10:32:05 2045

原创 截取视频帧图片,当截取过多内存变大导致崩溃问题

+ (UIImage*) thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time { AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil]; NSParameterAssert(asset);...

2019-01-22 14:39:04 1447

原创 安卓自定义弹框(Dialog)

 1.在style文件中创建一个style&lt;style name="dialog" parent="@android:style/Theme.Dialog"&gt; &lt;item name="android:windowFrame"&gt;@null&lt;/item&gt;&lt;!-- 边框--&gt; &lt;item name=&qu

2018-12-19 09:58:27 983 1

原创 EditText不太常用又用得到的东西

1.站位文字android:hint="请输入账号”2.取消下划线android:background="@null”3.设置输入类型(密码,数字,电话号等)android:inputType=“textPassword”4.设置键盘return按钮显示类型(搜索,完成)android:imeOptions=“actionSearch"5.获取该按钮的点击事件e...

2018-12-19 09:41:13 117

原创 安卓应用设置第一个显示的界面

找到AndroidManifest.xml文件双击打开其中MainActivity为应用自动创建的,默认为程序启动时第一个显示的界面其余的三个为自己添加添加新的Activity将&lt;intent-filter&gt; &lt;action android:name="android.intent.action.MAIN" /&gt; &lt;categor...

2018-12-18 14:46:22 8450 1

原创 安卓系统自带提示框 (带取消 确定按钮)

private void showCoverDialog(){ AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("提示"); builder.setMessage("已经存在了今天的数据,确定覆盖吗?"); builder.setPositiveB...

2018-12-18 14:35:14 6962 2

原创 安卓SQLiteDatabase数据库的使用

1.创建MyDBOpenHelper继承自SQLiteOpenHelper用来管理数据库public class MyDBOpenHelper extends SQLiteOpenHelper { public MyDBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int ...

2018-12-18 14:20:32 1466

苹果内购支付工具(swift)

苹果内购支付工具

2021-01-15

BannerDemo.zip

动画效果的轮播图,全屏显示三种,居中一张进行放大显示。两侧原尺寸进行显示.ScrollView实现

2019-10-24

安卓轮播图

安卓轮播图,实现无限循环轮播,加上图片点击事件,可手动滑动。

2018-11-05

icon launchImage 剪裁工具

自动生成项目中的icon各种尺寸,自动生成launchImage各种尺寸,包括ipad

2018-09-05

导航栏和Tabbar

iOS普通导航栏颜色,字体大小,字体颜色,图片导航栏,导航栏渐变。tabbar和自定义Tabbar

2018-08-08

图片调整大小,图片方向转换

UIImage图片的大小调整可能会发生拉伸变形,但宽高随意设定。 UIImage图片方向的调整长方形图片放倒后需要改变对应的UIImageView

2018-07-23

利用UIBezierPath和CAShapeLayer实现的镂空及遮罩效果。

利用UIBezierPath和CAShapeLayer实现的镂空及遮罩效果。

2018-07-17

给view添加渐变颜色

UIView的分类可以view及view的子类可以调用该方法添加渐变颜色,两种实现方法,方便简单。

2018-07-10

ios网络加载框,简单方便

利用CAReplicatorLayer写的网络加载框,漂亮简单,通俗易懂。一句代码调用

2018-03-14

最简单常用的网络加载框

最简单的,常用的网络加载框的实现,代码简单易懂,用法简单,一句话调用

2018-03-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除