<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[假装你是大灰狼的专栏]]></title><description><![CDATA[不积跬步，无以至千里；不积小流，无以成江海。]]></description><link>https://blog.youkuaiyun.com/chennai1101</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chennai1101]]></copyright><item><title><![CDATA[Android Retrofit2 详解和使用]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/135567722</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/135567722</guid><author>chennai1101</author><pubDate>Sat, 13 Jan 2024 13:19:24 +0800</pubDate><description><![CDATA[Retrofit是现在比较流行的网络请求框架，可以理解为okhttp的加强版，底层封装了okhttp。准确来说，Retrofit是一个RESTful的http网络请求框架的封装。因为网络请求工作本质上是由okhttp来完成，而Retrofit负责网络请求接口的封装。本质过程：App应用程序通过Retrofit请求网络，实质上是使用Retrofit接口层封装请求参数、HeaderUrl等信息，之后由okhttp来完成后续的请求工作。在服务端返回数据后，okhttp将原始数据交给Retrofit。]]></description><category></category></item><item><title><![CDATA[Android getLocalVisibleRect与 getGlobalVisibleRect方法]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/134511170</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/134511170</guid><author>chennai1101</author><pubDate>Mon, 20 Nov 2023 16:02:58 +0800</pubDate><description><![CDATA[简单来说就是目标view在父view的映射，然后从屏幕左上角开始计算，保存到rect中，注意是父view，而不是屏幕，因为demo的父view)和屏幕宽高是一样的。只要这个View的左上角在屏幕中，它的的左上角坐标就一定是(0,0)，如果View的右下角在屏幕中，它的右下角坐标就一定是(如果不在屏幕中，他的Rect数值就跟是一样的。]]></description><category></category></item><item><title><![CDATA[iOS 添加震动效果]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/134456939</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/134456939</guid><author>chennai1101</author><pubDate>Fri, 17 Nov 2023 10:17:24 +0800</pubDate><description><![CDATA[较早的系统版本，我们会使用。一般震动普通短震（类似3D Touch的 Peek 反馈 ）普通短震 （类似3D Touch Pop 反馈）连续三次短震。]]></description><category></category></item><item><title><![CDATA[iOS AVAudioRecorder简介]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/133753001</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/133753001</guid><author>chennai1101</author><pubDate>Tue, 10 Oct 2023 17:52:42 +0800</pubDate><description><![CDATA[的主要属性的主要方法录制后将音频保存到本地文件中。]]></description><category></category></item><item><title><![CDATA[iOS 获取视频截图]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/133748824</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/133748824</guid><author>chennai1101</author><pubDate>Tue, 10 Oct 2023 15:53:19 +0800</pubDate><description><![CDATA[注意：这种获取视频截图的方法适用于mp4等视频，不能用于m3u8上。当然，用这种方式有一定几率会失败，这也是个很诡异的bug，我会在下一篇文章中讨论这个问题，今天就此略过。后来查了一下文档,当你想要一个时间点的某一帧的时候，它会在一个范围内找，如果有缓存，或者有在索引内的关键帧，就直接返回，从而优化性能。a当前第几帧, b每秒钟多少帧，当前播放时间a/b。是一个用来描述视频时间的结构体。a当前时间,b每秒钟多少帧。就会发现时间差的很远。那么为什么，效果差了这么多呢？这个定义范围的API就是。]]></description><category></category></item><item><title><![CDATA[Android MediaStore的使用]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/133710733</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/133710733</guid><author>chennai1101</author><pubDate>Mon, 09 Oct 2023 17:54:08 +0800</pubDate><description><![CDATA[上文中提到了Android提供内容的叫，那么在Android中怎么区分各个Provider？有的是提供联系人的，有的是提供图片的，有的是提供视频的等等。所以就需要有一个唯一的标识来标识这个ProviderUri(通用资源标识符)就是起到了这个标识的作用。每一个都会有一个唯一的Uri地址，通过这个Uri标识可以获取到和其中的数据，然后进行数据操作。使用的Uricontent://是通用前缀，表示该Uri用于定位资源。authority是授权者名称，用来确定具体由哪一个提供资源。因此一般authority。]]></description><category></category></item><item><title><![CDATA[Android 视频编辑解析库MP4Parser]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/132713003</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/132713003</guid><author>chennai1101</author><pubDate>Wed, 06 Sep 2023 13:00:40 +0800</pubDate><description><![CDATA[在 GitHub 上找到这个库后从README开始。官方写到大概意思就是：读，写和创建MP4容器，操作容器不同于编码和解码。并不知道什么意思，继续往下。之后给出了混合音频和视频的操作方式；依赖库中支持的几种格式；一种特殊问题，音视频播放不同步的解决方案；明确强调和是不能进行拼接合并操作的。简单小结：使用此库可以实现多个音频视频的追加合并，将视频的音频和视频进行分离替换等，同时还支持了字幕的添加，使用时候需要注意音视频格式。]]></description><category></category></item><item><title><![CDATA[Android MediaRecorder录音]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/132711700</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/132711700</guid><author>chennai1101</author><pubDate>Wed, 06 Sep 2023 11:26:30 +0800</pubDate><description><![CDATA[最近在项目中实现录音功能，并在逻辑中还有对录音文件的特殊要求，前前后后看了很多资料，学习了很多，今天在这里分享记录一下，以便后期回看。和。：录制的音频文件是经过压缩后的，需要设置编码器。并且录制的音频文件可以用系统自带的Music播放器播放。已经集成了录音、编码、压缩等，并支持少量的录音音频格式，但是这也是他的缺点，支持的格式过少并且无法实时处理音频数据。：主要实现对音频实时处理以及边录边播功能，相对。]]></description><category></category></item><item><title><![CDATA[Android APP界面黑白化处理]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130710148</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130710148</guid><author>chennai1101</author><pubDate>Tue, 16 May 2023 17:23:43 +0800</pubDate><description><![CDATA[的属性更改界面背景颜色，通过设置颜色过滤器更改画笔的色调、饱和度和亮度。考虑性能使用HardwareLayer(GPU内部的Buffer)对绘制的图形进行缓存。设置置灰，实现全局置灰效果。创建自己对应的层，并将自己绘制到层上。Android页面绘制流程一般分为。Android页面置灰。]]></description><category></category></item><item><title><![CDATA[Android PickerView简单应用]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130641768</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130641768</guid><author>chennai1101</author><pubDate>Mon, 15 May 2023 18:14:25 +0800</pubDate><description><![CDATA[这是一款仿iOS的PickerView控件，有时间选择器和选项选择器。添加依赖项。]]></description><category></category></item><item><title><![CDATA[Android 播放视频之ExoPlayer]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130505017</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130505017</guid><author>chennai1101</author><pubDate>Mon, 08 May 2023 11:01:16 +0800</pubDate><description><![CDATA[在中，我们了解了系统自带的VideoView来播放视频，但其支持的视频格式偏少，我们需要其他的视频播放器。ExoPlayer是Google的开源的应用级媒体播放器项目，支持多种视频格式和流媒体播放，。]]></description><category></category></item><item><title><![CDATA[Android 播放视频之VideoView]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130487445</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130487445</guid><author>chennai1101</author><pubDate>Thu, 04 May 2023 16:42:32 +0800</pubDate><description><![CDATA[VideoView继承，并且实现了接口，相当于的组合。关于可参考。在布局文件里添加VideoView在Activity里面播放视频。]]></description><category></category></item><item><title><![CDATA[iOS UIApplication的openURL方法]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130345988</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130345988</guid><author>chennai1101</author><pubDate>Mon, 24 Apr 2023 16:57:10 +0800</pubDate><description><![CDATA[【代码】iOS UIApplication的openURL方法。]]></description><category></category></item><item><title><![CDATA[iOS 自定义日期控件]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130294165</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130294165</guid><author>chennai1101</author><pubDate>Mon, 24 Apr 2023 10:27:06 +0800</pubDate><description><![CDATA[控件来显示日期，但其样式无法更改，功能也无法满足。所以需要自定义日期控件，显示如下。控件中间显示当前月份，左右按钮可以切换月份。日历默认6行，每周以周日开始周六结束。界面不是很复杂，比较麻烦的有两点，正好提供了解决这两个问题的方法。]]></description><category></category></item><item><title><![CDATA[iOS Objective-C NSDate和NSDateComponent的使用]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130270036</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130270036</guid><author>chennai1101</author><pubDate>Thu, 20 Apr 2023 16:57:29 +0800</pubDate><description><![CDATA[NSDate常用初始化方法常用属性常用方法。]]></description><category></category></item><item><title><![CDATA[iOS UITableViewCell内嵌UITextField]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130245500</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130245500</guid><author>chennai1101</author><pubDate>Wed, 19 Apr 2023 16:06:38 +0800</pubDate><description><![CDATA[内嵌，我们想要在列表中输入编辑内容。]]></description><category></category></item><item><title><![CDATA[iOS 自定义签名控件]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130203495</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130203495</guid><author>chennai1101</author><pubDate>Mon, 17 Apr 2023 17:11:29 +0800</pubDate><description><![CDATA[控件用来实现自定义签名功能，实现有两个功能，其他方法。]]></description><category></category></item><item><title><![CDATA[iOS 吸顶效果]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130131507</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130131507</guid><author>chennai1101</author><pubDate>Mon, 17 Apr 2023 11:24:22 +0800</pubDate><description><![CDATA[项目中，在列表向上滚动时，有时需要将某个控件置顶，这就是我们常见的吸顶效果。]]></description><category></category></item><item><title><![CDATA[iOS Xcode 问题集合]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130088418</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130088418</guid><author>chennai1101</author><pubDate>Tue, 11 Apr 2023 17:14:10 +0800</pubDate><description><![CDATA[XCode 14.3Xcode 14.2版本运行项目一切正常，升级到14.3版本后运行报错。在Podfile文件中加上。]]></description><category></category></item><item><title><![CDATA[iOS 自定义Tab页]]></title><link>https://blog.youkuaiyun.com/chennai1101/article/details/130082194</link><guid>https://blog.youkuaiyun.com/chennai1101/article/details/130082194</guid><author>chennai1101</author><pubDate>Tue, 11 Apr 2023 15:01:13 +0800</pubDate><description><![CDATA[在这里我们首先定义用来显示其中的标签页。// 标签页代理 @protocol UKTabItemViewDelegate < NSObject > -(void) onTabItemViewSelected :(UKTabItemView *) tabItemView;// 设置标签页标题 -(void) setText :(NSString *) text;// 设置标签页状态 -(void) setSelected :(BOOL) selected;]]></description><category></category></item></channel></rss>