ios - 如何在 iOS 中动态改变视频的播放速率?

标签 ios video opengl-es avfoundation playback

我正在努力实现的完美示例可以在 Flow ● Slow and Fast Motion 中看到应用程序 。

可以通过向上或向下拖动曲线上的点来改变视频的播放速率。视频也可以在此状态下保存

我正在寻找一种动态加速/减速视频的方法,以便在播放视频时可以更改播放速率。

Video explanation

enter image description here

我尝试了什么

  • AVPlayer 的播放 rate 属性。但它只适用于播放速率的几个值(0.50、0.67、0.80、1.0、1.25、1.50 和 2.0 ) 并且无法保存视频
  • AVMutableCompositionscaleTimeRange(..) 属性。但是,当您想要ramp 视频以逐渐减少慢动作/快 Action 时,它就不起作用了。

  • 使用 CAEAGLLayerCADisplayLink 在屏幕上显示视频帧。但是我尝试用它实现慢/快 Action 的许多尝试都没有成功。

所有这一切花了我几个月的时间,我开始怀疑我是否能够完成这一切。

因此,任何建议都将非常有值(value)。

最佳答案

在 IOS 中,MPNowPlayingInfoCenter 对象包含一个“nowPlayingInfo”字典,其内容描述正在播放的项目。建议您以“currentplaybackrate”开始播放,然后设置速度。看这个thread在开发者论坛上。

你可能会得到类似 this 的结果(但这是 javascript),其中视频的播放速度已加快 4。

  document.querySelector('video').playbackRate = 4.0;
  document.querySelector('video').play();
video{width:400px;
   height:auto;}
<video controls preload="true" autoplay>
      <source src="http://www.rachelgallen.com/nature.mp4" type="video/mp4" > 
</video>

关于ios - 如何在 iOS 中动态改变视频的播放速率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43438298/

相关文章:

ios - 在 iOS 中添加指向 nsattributedstrings 的链接时出现越界错误

ios - 用于绘图应用程序的 Quartz 或 OpenGL

ios - 以编程方式在 Twitter 中获取 "Allow these Apps to use your account"的值

ios - 如何针对随 SDK 变化的方法创建单元测试?

iOS - 两个应用程序目标,共享应用内购买

Android 2.3 渐进式下载不工作

Ruby 视频教程

c# - 通过 Microsoft.DirectX.AudioVideoPlayback 显示对视频播放的控制

Android Activity 生命周期 - 重新启动(销毁)应用程序不会删除对(自定义)监听器的引用?

c++ - Opengl ES 纹理绘制不正确