平移寻找AVPlayer

2023-11-27

我正在尝试在 AVPlayer 中向前和向后平移和搜索。这是可行的,但确定平移在何处转换为资产长度的基本数学是错误的。有人可以提供帮助吗?

- (void) handlePanGesture:(UIPanGestureRecognizer*)pan{

    CGPoint translate = [pan translationInView:self.view];
    CGFloat xCoord = translate.x;
    double diff = (xCoord);
    //NSLog(@"%F",diff);

    CMTime duration = self.avPlayer.currentItem.asset.duration;
    float seconds = CMTimeGetSeconds(duration);
    NSLog(@"duration: %.2f", seconds);

    CGFloat gh = 0;

    if (diff>=0) {
        //If the difference is positive
        NSLog(@"%f",diff);
        gh = diff;
    } else {
        //If the difference is negative
        NSLog(@"%f",diff*-1);
        gh = diff*-1;
    }

    float minValue = 0;
    float maxValue = 1024;
    float value = gh;

    double time = seconds * (value - minValue) / (maxValue - minValue);

    [_avPlayer seekToTime:CMTimeMakeWithSeconds(time, 10) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
    //[_avPlayer seekToTime:CMTimeMakeWithSeconds(seconds*(Float64)diff , 1024) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];

}

您没有标准化触摸位置和相应的时间值。两者之间是1:1的关系吗?那是不可能的。

获取平移手势的最小和最大触摸位置值以及资源持续时间(显然,从零到视频长度)的最小和最大值,然后应用以下公式将触摸位置转换为搜索时间:

// Map
#define map(x, in_min, in_max, out_min, out_max) ((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)

这是我编写的使用该公式的代码:

- (IBAction)handlePanGesture:(UIPanGestureRecognizer *)sender {
        if (sender.state == UIGestureRecognizerStateChanged){
            CGPoint location = [sender locationInView:self];
            float nlx = ((location.x / ((CGRectGetMidX(self.frame) / (self.frame.size.width / 2.0)))) / (self.frame.size.width / 2.0)) - 1.0;
            //float nly = ((location.y / ((CGRectGetMidY(self.view.frame) / (self.view.frame.size.width / 2.0)))) / (self.view.frame.size.width / 2.0)) - 1.0;
            nlx = nlx * 2.0;
            [self.delegate setRate:nlx];
        }
}

我挑选了显示速率的标签,以及在您拖动时出现的播放图标,该图标会根据您平移视频的快慢来改变大小。虽然你没有要求,但如果你想要,就问吧。

哦,“两倍”因子旨在将加速度曲线添加到发送到委托的 setRate 方法的平移手势值。您可以使用任何公式,甚至是实际曲线,例如 pow(nlx, 2.0) 或其他......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

平移寻找AVPlayer 的相关文章

  • 如何在 Xcode 4.5 中添加旧版本的 iOS SDK

    我在这里复制了 iOS 5 1 SDK 应用程序 Xcode app Contents Developer Platforms iPhoneOS platform Developer SDKs 但是 我仍然无法在 Xcode 中选择基础 S
  • 具有硬件集成的 iOS 应用程序

    我想开发一个使用外部硬件插件的 iOS 应用程序 有点像 Squarehttps squareup com https squareup com 但是我在苹果的文档中找不到任何参考资料 有人能指出我正确的方向吗 如果您想使用 iPod 连接
  • 如何在首选项包中使用 PSLinkListCell 中的值?

    我想为我的越狱调整制作一个偏好包 我成功地制作了一个带有可用开关的首选项捆绑包 但我想要一个选择颜色的设置 例子 Blue Color gt Yellow Green 所以如果我点击Color 它会将我带到另一个屏幕 要求我选择 Blue
  • ViewController.swift(界面)文件的用途是什么 - 在 Counterparts 中

    我刚刚注意到一个名为ViewController swift Interface 当我创建第一个 ViewController 时 Xcode 自动创建了它 Swift 中的类是否具有 需要与 Objective C 中相同的接口 并且由
  • Xcode 6 iOS 8 UIImage imageNamed 来自捆绑包问题

    我使用 iOS 7 1 构建我的项目 并尝试使用存储在 images cars car 1 png 中的图像加载 UIImage 视图 所有图像都位于项目树中的图像文件夹中 如下图所示 所以它非常适合 iOS 7 1 和 Xcode 5 但
  • Swift 3:将 UIButton 扩展添加到 ViewController

    我是 iOS Swift 的初学者 尝试创建一个没有 Storyboard 的简单应用程序 我创建了一个UIButton扩展名 我想在我的视图中添加一个简单的按钮 稍后将设置约束 不幸的是 该按钮不可见 如果有人帮助我 我将不胜感激 谢谢你
  • 是否可以?相机 API ios [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在应用程序中实现一项功能 当用户
  • 平板电脑在第一次单击时悬停,在第二次单击时单击

    发布这个问题主要是希望证实我对该行为的怀疑 从而为其他程序员记录下来 因为我在网上没有找到任何记录 我正在构建一个网站 其导航栏具有以下属性 水平截面是 ul of li 和一些 li li s 两者都有 A n a 元素带您进入该主题 触
  • 让约束在尺寸类别中发挥作用

    所以 我正在 Xcode 6 beta 中尝试尺寸类 我对图像设置了一些限制 使其根据 iPhone 纵向和横向对应的尺寸类别处于不同的位置 这些限制在下图中可见 正如您所看到的 当我处于紧凑 紧凑状态时 一些约束被 安装 而其他约束则没有
  • 使用捏合手势;如何放大用户手指实际“捏”的位置?

    我已经在我的应用程序中的 UIImageView 上实现了 UIPinchGestureRecognizer 但是无论我在图像的哪个位置捏合 它似乎都会放大到同一个位置 有谁知道我如何让它放大到用户实际 捏 的地方 请参阅下面的代码 视图控
  • 我可以使用 NSDateFormatter 将此日期字符串转换为 NSDate 吗?

    我有这个字符串 2010 08 24T16 00 00 05 00 我想从中提取时间部分 即 16 00 并将其转换为 12 小时等效值 即下午 04 00 我正在尝试使用 NSDateFormatter 来完成此任务 但它不起作用 NSD
  • 相机叠加图片

    edit 3 好消息和坏消息 好消息是 在连接检查器中 通过断开覆盖 UIToolbar 并连接 UIImageview 我看到theKing 但是 坏消息 我没有看到我也需要的 UIToolbar 所以现在的问题是 当用户完成这里操作后
  • 未安装的应用程序的URL方案

    简单的问题 我正在开发一个将注册自己的 URL 方案的应用程序 我计划通过人们最喜欢的 QRCode 阅读器使用 QRCode 启动该应用程序 我的问题 如果我的应用程序尚未安装在他们的 iPhone iPad 上 会发生什么 他们会被引导
  • iPhone / iPad IOS 应用程序仪器内存计数与 task_info 内存计数

    我一直在使用 Instruments Leak Tester 它给出了大约 1 3 meg 的应用程序总分配数字 但是 当使用 task info 时 它会报告更大的内存量 例如 10 20 meg 我想我只是想确认task info正在返
  • 获取 Swift 子目录中资源的所有 URL

    我正在尝试为 iOS 应用程序的子目录中的所有资源创建 URL 数组 我似乎无法到达正确的路径 即使我不知道名称 我也希望能够检索 URL 即我不想将文件名硬编码到代码中 Below is a screen shot of the hier
  • SDWebImage 显示缓存中图像的占位符

    在 iOS 5 1 项目 iPad 中使用 SDWebImage 3 我们展示相当大的图像 700x500 并且我们有很多图像 1000 我们预取图像并缓存到磁盘 然后允许用户浏览它们 效果很好 除了当您浏览图像时 您总是会看到占位符显示一
  • iOS:addConstraints:应用程序崩溃

    Problem 我似乎无法在现有项目中采用自动布局 Details 我之前也遇到过与此问题相同的问题presentViewController 在 iOS 但所提供的答案都不是我的解决方案 我正在使用所有没有 xib 的故事板视图 我的 使
  • AVAudioMixerNode pan 或 AVAudioUnitSamplerstereoPan 属性无法更改 AVAudioEngine 声音输出的左/右平衡

    我有以下代码 它播放单个 MIDI 音符 但我希望能够调整平衡 平移 以便它仅从左扬声器或右扬声器或某些组合中播放 我认为更改 sampler stereoPan 或 engine mainMixerNode pan 也许可以解决问题 但它
  • NSURLConnection 是否自动保留从服务器发送的 cookie?

    我从 ios 登录到我的龙卷风后端并发回 secure cookie 我注意到只要验证我设置的 secure cookie 我还可以请求其他信息 NSURLConnection 会保留 cookie 多久 或者关闭应用程序后 cookie
  • 如何将 NSAppTransportSecurity 添加到 Cordova 项目

    我正在从事一个 ionic cordova 项目 该应用程序需要配置 iOS 9 版本的应用程序传输安全例外 有谁知道如何将以下配置添加到 cordova 项目配置文件中 配置 xml

随机推荐

  • 如何转换和提取Kafka接收器JDBC连接器中的字段

    我正在使用第 3 方 CDC 工具 将数据从源数据库复制到 Kafka 主题中 示例行如下所示 data USER ID string 1 USER CATEGORY string A beforeData Data USER ID str
  • 尝试重定向“git gc”输出

    我有一个 daily运行的 crontab 中的作业git gc在所有回购协议上 我正在尝试为该作业设置一个日志文件 但 I O 重定向不会产生我正在寻找的结果 我得到一个空白文件 我已经做了所有平常的事情 gt 2 gt 1等等都没有成功
  • iOS8 区域本地化(例如 pt-BR)?

    据我了解 iOS8 现在支持区域本地化 在本例中我想支持 pt BR See http www ibabbleon com iOS Language Codes ISO 639 html 我遇到了这个问题 使用全新的单视图应用程序对此进行测
  • 转储文件分析入门

    我正在使用旧版 VB6 COM 应用程序 该应用程序有时会导致 Windows 7 崩溃 我现在已经使用 Sysinternals 的 ProcDump 工具生成了其中一个崩溃的 dmp 文件 但是 我以前从未使用过转储文件 您会推荐哪些资
  • 从 ScrollView Swift 中删除子视图

    我使用 for 循环在滚动视图中创建标签和按钮 是否可以删除滚动视图内的所有对象 我想用新内容更新它 for peop in personArray scrollView clearContent Name label var label
  • 格式化 NSNumber 对象时如何指定小数位?

    我使用下面的一段 Objective C 代码来格式化 NSNumber 它在大多数情况下都工作正常 但是当 NSNumber 对象包含整数 没有小数部分 时 它并不能完全满足我的要求 UILabel label UILabel alloc
  • Python 多处理池卡住

    我正在尝试运行在网上找到的 python multiprocessing pool 模块的一些示例代码 代码是 def square x return x x if name main pool Pool processes 4 input
  • 如何区分类型是值类型还是引用类型?

    一些简单的类型 如 int string 等 很容易意识到它们是 ValueTypes 或 RefrenceTypes 但我想知道有什么方法可以区分吗 所有结构 枚举和本机类型都是值类型 在运行时你可以这样检查 Type type type
  • 如何为 HTTP GET 请求设置标头并触发文件下载?

    Update20140702 解决方案 详细答案作为博客文章 但我将其他答案之一标记为已接受 而不是我自己的 因为它让我成功了一半 并奖励我的努力 似乎无法通过以下链接设置 HTTP 请求标头 a href 并且只能使用XMLHttpReq
  • HTTP 请求在 Postman 中有效,但在 C# 代码中无效

    我想用 C 做一个简单的 HTTP 请求 但是有些东西不起作用 我得到的只是403 Forbidden状态码 当我尝试在邮递员中执行相同的请求时 一切正常 我尝试运行 Fiddler 并查看 Postman 发送的所有标头 我全部复制粘贴了
  • 我是否应该要求 IdP 签署 SAML2 SSO 响应?

    我们的应用程序具有与 3 个不同 Shibboleth IdP 的 SAML2 SSO 集成 我们正在尝试添加第四个 也是 Shibboleth 但遇到了一些问题 因为我们的应用程序期望所有 SSO 响应都经过验证签名 其他 3 个正在签署
  • 从 Nhibernate 执行的查询很慢,但从 ADO.NET 执行的查询很快

    我的 MVC 应用程序中有一个查询 大约需要 20 秒才能完成 使用 NHibernate 3 1 当我在 Management studio 上手动执行查询时 需要 0 秒 我在 SO 上看到过类似的问题 所以我进一步进行了测试 我使用
  • 是否可以为字符串文字创建模板化的用户定义文字(文字后缀)?

    当我发现可以制作用户定义的文字模板时 我感到很惊讶 template
  • 从 setTimeout 获取返回值[重复]

    这个问题在这里已经有答案了 我只想获取返回值setTimeout但我得到的是函数的完整文本格式 function x setTimeout y function return done 1000 return y console log x
  • Android - 仅将方向锁定为两个方向

    如何使我的 Android 应用程序成为横向或纵向 但没有相反的方向 意思是我想启用SCREEN ORIENTATION PORTRAIT and SCREEN ORIENTATION LANDSCAPE但要禁用SCREEN ORIENTA
  • ckeditor - onpaste 事件

    有谁知道我如何附加onpasteCKEditor 3 x 中的事件 I basically want to grab CTRL V data and add few text to it and then add it to the edi
  • 如何使用 GDB 7.x 查看 STL 容器的内容

    我一直在使用宏解决方案 正如它所概述的那样here 但是 其中提到了如何在没有宏的情况下查看它们 我指的是 GDB 7 及以上版本 有人能说明一下如何吗 Thanks 从 SVN 获取 python 查看器 svn gcc gnu org
  • 从 Objective-C 移植到 C++ 的最佳方式是什么?

    我没有任何 Objective C 经验 但有很强的 C 背景 是否有一个自动化工具 脚本 或者 最坏的情况下 是否有一些手动方法 使用一些优秀的参考来将 Objective C 编写的代码移植到 C 其中有何困难 编辑 我听说该代码相当简
  • 给搜索栏一个半圆形

    是否可以使用 android 形状元素为 Seekbar 提供弧形形状 如果没有 还有其他方法可以改变搜索栏的形状吗 我有一个允许半圆的开源 CircularSeekBar http devadvance com circularseekb
  • 平移寻找AVPlayer

    我正在尝试在 AVPlayer 中向前和向后平移和搜索 这是可行的 但确定平移在何处转换为资产长度的基本数学是错误的 有人可以提供帮助吗 void handlePanGesture UIPanGestureRecognizer pan CG