如何正确创建带有 UISlider 的缩略图选择器以从视频中进行选择?

Posted

技术标签:

【中文标题】如何正确创建带有 UISlider 的缩略图选择器以从视频中进行选择?【英文标题】:how to correctly create a thumbnail picker with a UISlider for selection from a video? 【发布时间】:2012-08-18 22:44:24 【问题描述】:

你好,这是一个简单的问题到一个难题(到目前为止对我来说)

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

我尝试了很多方法,包括通过界面生成器连接它并以编程方式进行。

这是我目前拥有的:

.h file

.m file

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. 

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

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

【问题讨论】:

【参考方案1】:

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

在类方法中它说 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……当然,图像像魅力一样更新。但是现在我需要弄清楚如何加快这个过程,因为目前它似乎是同步的,因为它大大滞后于界面

【讨论】:

以上是关于如何正确创建带有 UISlider 的缩略图选择器以从视频中进行选择?的主要内容,如果未能解决你的问题,请参考以下文章

在 UISlider 的缩略图上不断更改 UILabel 的值

如何将带有 imagepickercontroller 的照片作为缩略图放入 collectionView 单元格

自定义 UISlider 无法正确设置最小轨道颜色

iOS - 折叠动画 UISlider

范围选择器/范围搜索栏来修剪视频,包括缩略图[关闭]

使用带有扭曲位置的slick.js的缩略图滑块