positive: \ue50a　2020-09-20　\ue50b\ue50a综合百科　\ue50b\ue50aBy:admin　\ue50b在pr里面抽帧的方法如下:　1、打开抽帧的运行软件,新建项目文件,在装载预置中选择DVPAL　,保存项目源文件;　2、双击“项目”窗口空白处,弹出输入对话框,将光盘中需要抽帧的素材导入项目源文件;　3、编辑素材,找到并添加“间歇”滤镜进行设置,依次选择帧定格和时间轴;　4、点击鼠标右键,点击帧定格,选择入点或出点定格,即可实现抽帧。　5、完成各项的设置后,按空格键进行预览,没有问题后保存即可。
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>