Open feng520ckx opened 7 years ago
下面两句代码我是放到了Slider的valueChange方法里的,滑动了Slider就去获取缩略图 然后显示出来
UIImage *thumbImage=[self.prober getVideoThumbnailImageAtTime:interval width:0 height:0]; self.srcImageView.image=thumbImage;
运行之后 ,发现放到主线程里获取缩略图会显得有些卡顿,
然后就改了一下,把获取缩略图的方法放到了子线程里执行,获取到了图片之后放回到主线程设置图片,用gcd创建了一个串行队列,代码如下
dispatch_queue_t queue=dispatch_queue_create("playerCaptureThumbQueue", DISPATCH_QUEUE_SERIAL); dispatch_async(queue, ^{ UIImage *thumbImage=[self.prober getVideoThumbnailImageAtTime:interval width:0 height:0]; dispatch_async(dispatch_get_main_queue(), ^{ self.srcImageView.image=thumbImage; }); });
运行之后发现获取的缩略图是如代码所设置的,一个一个获取的,当手指松开拖动Slider的时候,UIImageView中显示的图片还是一个一个加载的 会持续一会儿
然后我把串行队列改成了并行队列,程序执行 ,拖动了一下Slider之后,就崩溃了,想问一下有没有解决方案呢。
getVideoThumbnailImageAtTime方法的初衷是为了获取视频中某个时间点的图像,在每次调用时都会有对视频文件的打开关闭操作,未考虑到要频繁的调用来获取一系列的缩略图 所以目前对你这种使用方式的支持确实不好
你好,我开发的时候也遇到这个问题了,getVideoThumbnailImageAtTime异步操作老崩溃,请问你最后用什么办法解决的
下面两句代码我是放到了Slider的valueChange方法里的,滑动了Slider就去获取缩略图 然后显示出来
运行之后 ,发现放到主线程里获取缩略图会显得有些卡顿,
然后就改了一下,把获取缩略图的方法放到了子线程里执行,获取到了图片之后放回到主线程设置图片,用gcd创建了一个串行队列,代码如下
运行之后发现获取的缩略图是如代码所设置的,一个一个获取的,当手指松开拖动Slider的时候,UIImageView中显示的图片还是一个一个加载的 会持续一会儿
然后我把串行队列改成了并行队列,程序执行 ,拖动了一下Slider之后,就崩溃了,想问一下有没有解决方案呢。