positive: 最新版的pr自动抽帧软件已全新升级到如下图所示:<br>使用方法说明:<br>首先点击注册程序,会跳出一个弹窗,关掉这个弹窗。然后将这串码ctrl v粘贴注册。<br>然后点击打开主程序。<br>就会出现软件的界面。<br>模式一的操作步骤说明:<br>首先将电脑事先安装好Premiere,将视频倒入到PR中。如图拖动到项目位置即可。<br>然后在PR中,将视频拖动到右边的时间轨道上面。<br>第一步,根据自己的视频设置好时间的长度,比如视频的总时间长度是1分50秒<br>第二步,点击转换按钮<br>第三步,设置每隔帧数,25帧大概是一秒的样子<br>第四步,最小化软件<br>然后转到PR软件界面,用鼠标点选视频使之变色。最后按启动键alt 1即可。<br>本次更新增加了不删除帧,可以勾选不删除的复选框,步骤和以上是一样的。效果就是没有抽帧效果,单单分割了视频,这样音频的长度和原来的保持一样。<br>至于模式二的使用以及对应的随机功能,可以参考以前的文章。
negative: activeResources中<br>private EngineResourceloadFromCache(Key key, boolean isMemoryCacheable) { if (!isMemoryCacheable) { return null; } EngineResourcecached = getEngineResourceFromCache(key); if (cached != null) { cached.acquire(); activeResources.put(key, new ResourceWeakReference(key, cached, getReferenceQueue())); } return cached; }<br>接着看getEngineResourceFromCache()方法中的第一行代码,内存中删除了要取出的值<br>private EngineResourcegetEngineResourceFromCache(Key key) { //Removes the value for the given key and returns it if present or null otherwise. Resourcecached = cache.remove(key); final EngineResource result; if (cached == null) { result = null; } else if (cached instanceof EngineResource) { // Save an object allocation if we've cached an EngineResource (the typical case). result = (EngineResource) cached; } else { result = new EngineResource(cached, true /*isCacheable*/); } return result; }<br>所以当发现内存中有值的时候,是先存进弱引用中,然后再查找弱引用显示图片,弱引用中没有图片的话再去硬盘中找。<br>Tip:采用弱引用的方式是为了防止内存泄漏<br>内存缓存<br>1.关键类<br>LruResourceCache 内部存储的相关方法类<br>MemoryCache 内部存储方法接口<br>Engine 统领内存相关操作的类<br>2.封装机制<br>内存缓存的封装机制很简单,找到这个类,你也就明白了<br>硬盘缓存<br>1.相关类<br>DiskLruCacheWrapper 磁盘存储相关方法类<br>DiskLruCacheFactory 获得以上实例的工厂类<br>ExternalCacheDiskCacheFactory 返回外部存储文件地址<br>InternalCacheDiskCacheFactory 返回内部存储文件地址<br>DecodeJob 对硬盘存储方法的进一步封装<br>2.封装机制<br>