0

嗨,这是一个对难题的简单问题(无论如何对我来说)

我不认为自己是初学者程序员,但看在上帝的份上,我似乎无法弄清楚这一点....我目前遇到与更新 uiimageview 相关的问题.. 当我的滑块移动时它没有更新左右..当我拖动它时它确实会减慢应用程序的速度,这告诉我正在发生进程并告诉我他们正确地连接了itnerface和他们的方法..发生了什么或者我现在正在做什么正在尝试检索由时间指定的特定帧的图像数据,然后能够根据 uislider 的位置将其选择为缩略图。所以它是一个手动缩略图选择器。

我通过界面构建​​器连接它和以编程方式进行连接,尝试了很多事情。

到目前为止,这是我所拥有的:

.h file

.h 文件

.m file

点 m​​ 文件

the slider method for sliderValueChanged which gets called

滑块法

and finally my class method that i use to help retrieve a thumbnail image returning nsdata... passing in a video and a specified time position. 

检索缩略图的类方法

我在stackoverflow上读到,如果定期更新uiimageview会导致内存泄漏,因为它会缓存图像..并使用[UIImage imageWithData:]来避免任何泄漏等,所以我已经在我的代码中实现了这一点,但我的缩略图视图仍然无法根据滑块的位置加载图像。(创建滑块以将最小值和最大值设置为从 0 到视频的持续时间,以便滑块只能具有可以正确选择相关视频中的时间范围的值)

如果有人可以指导我如何解决这个问题.. 它现在已经超出了我几个小时!我很感激帮助。谢谢你

4

1 回答 1

0

我意识到这里发生了什么......我传递给我的方法的滑块值不适合我的要求。

在类方法中它说 CMTimeMake(value 1, value 2).. 在做了一些研究之后,我明白了它是如何工作的。

基本上,在我的情况下,您在值 2 中指定了一个时间间隔,它是 60 .. 基于我复制的一些代码.. 无论您用值 1 代替什么,都将成为时间间隔的一部分.. 它们是分子和分母,所以1 /60 等于 1 60 秒 2/60 等于 2 60 秒的时间位置......如果我想要 3 秒,我需要做 60*3 = 180 所以

180/60 等于 180 秒的 60 秒,总共等于 3 秒......所以因为我的滑块值被映射到视频的持续时间,最大值为 15 秒......我可以使用的最高时间框架我在我的问题中写的代码......我只能得到 15 60 秒。哪个时间框架在第 60 秒之间并没有真正的差异,因此我看不到 uimageview 正在更新的原因......

所以为了纠正这个问题,我将我的滑块值乘以 60,这样每个值都会因为它们被映射到秒而发生变化……我乘以 60……当然,图像像魅力一样更新了。但是现在我需要弄清楚如何加快这个过程,因为目前它似乎是同步的,因为它大大滞后于界面

于 2012-08-18T23:51:45.900 回答