记录一下:

Initial method to setup GPUImageMovie,

- (void)setupVideo
{playerItem = [[AVPlayerItem alloc]initWithURL:self.recordSession.outputUrl];player = [AVPlayer playerWithPlayerItem:playerItem];movieFile = [[GPUImageMovie alloc] initWithPlayerItem:playerItem];movieFile.runBenchmark = YES;movieFile.playAtActualSpeed = YES;[self.view sendSubviewToBack:self.videoView];[movieFile addTarget:filter];[filter addTarget:self.videoView];[movieFile startProcessing];movieRunning = YES;dispatch_async(dispatch_get_main_queue(), ^{self.playButton.hidden = YES;});player.rate = 1.0;
}

This method is called when user clicks on a filter button.

- (void)filterClicked:(UIButton *)button
{// Set paused time. If player reaches end of the video, set pausedTime to 0.if (CMTimeCompare(pausedTime, player.currentItem.asset.duration)) {pausedTime = player.currentTime;
} else {pausedTime = CMTimeMake(0, 600.0);
}
[self.videoView setBackgroundColor:[UIColor clearColor]];[movieFile cancelProcessing];switch (button.tag)
{case 0:filter = nil;filter = [[GPUImageFilter alloc] init];break;case 1:filter = nil;filter = [[GPUImageColorInvertFilter alloc] init];break;case 2:filter = nil;filter = [[GPUImageEmbossFilter alloc] init];break;case 3:filter = nil;filter = [[GPUImageGrayscaleFilter alloc] init];break;default:filter = nil;filter = [[GPUImageFilter alloc] init];break;
}[self filterVideo];}

After filter generation, video play resume is handled in this method.

- (void)filterVideo {// AVPlayerItem is initialized with required urlplayerItem = [[AVPlayerItem alloc]initWithURL:self.outputUrl];
[player replaceCurrentItemWithPlayerItem:playerItem];//GPUImageMovie is initialized with AVPlayerItemmovieFile = [[GPUImageMovie alloc] initWithPlayerItem:playerItem];movieFile.runBenchmark = YES;
movieFile.playAtActualSpeed = YES;// Adding targets for movieFile and filter[movieFile addTarget:filter];
[filter addTarget:self.videoView]; // self.videoView is my GPUImageView[movieFile startProcessing];
movieRunning = YES;dispatch_async(dispatch_get_main_queue(), ^{self.playButton.hidden = YES;
});// Player rate is set to 0 means player is paused[player setRate:0.0];// Seeking to the point where video was pausedif (CMTimeCompare(pausedTime, player.currentItem.asset.duration) == 0) {[player play];} else {[player seekToTime:pausedTime];[player play];
}
}

GPUImageMovie播放控制相关推荐

  1. html5 音乐播放进度条,js实现音乐播放控制条

    前言 html5中提供audio标签, 该标签实现音频的播放,之前就一直对于音频以及视频播放比较感兴趣,一直想要自己实现一个音频和视频播放的模块,这也是本文章撰写的初衷,最近花了些时间实现了Audio ...

  2. Leanback(1)-播放控制栏下添加新的行

    我们要在播放控制栏下面加入下面一行. 这个就是标准的row. leanback的原理 Android Leanback结构源码简析 - 简书 我们知道Row用来提供数据,row可以通过一个Object ...

  3. 为FLASH(.SWF)文件添加播放控制条

    网上有很多不错的FLASH格式的视频教程,可惜有些视频没有在其中加入能够控制进度的控制条,暴风影音这类软件能够播放FLASH格式的文件,并可以用它自己的控制条进行对FLASH的进度控制,由于各个视频录 ...

  4. Js实现音乐播放控制条

    前言 html5中提供audio标签, 该标签实现音频的播放,之前就一直对于音频以及视频播放比较感兴趣,一直想要自己实现一个音频和视频播放的模块,这也是本文章撰写的初衷,最近花了些时间实现了Audio ...

  5. jquery实现audio的播放控制

    实现audio的暂停与播放控制. <button onclick="playMusic()">播放<button> <audio id="p ...

  6. FFmpeg学习笔记--FFplay播放控制、FFplay基本命令参数、FFplay高级命令参数

    目录 1--FFplay播放控制 2--FFplay命令参数 1 强制显示宽高,用于调整窗口大小 2 设置帧尺寸,仅适用于没有包含帧大小的视频 3 设置像素格式 4 以全屏模式启动 5 禁用音频.视频 ...

  7. H5 audio 音频标签自定义样式修改以及添加播放控制事件

    20181023 更新 原来的代码拖动进度点只写了mouse事件,手机端的话应该是touch事件.所以出现了有朋友说的移动端无法拖动进度条的问题.现在更新的代码已经加上touch事件,即无论是手机模式 ...

  8. video自动播放 隐藏播放控制条,并且用点击 video 元素的时候 控制暂停和播放...

    说一下几个要求: 页面打开自动播放 当不能自动播放时,第一次点击(document)就触发视频播放 因为播放控制条会挡住视频内容,所以隐藏,但是点击 video 元素的时候可以控制暂停和播放 以上要求 ...

  9. HTML5 video标签的播放控制

    转自http://www.php.cn/html5-tutorial-402832.html 这篇文章主要介绍了HTML5 video标签的播放控制,本文讲解了获取影片总时长.播放.暂停.获取影片的播 ...

最新文章

  1. 参加web前端学习前需要知道的注意事项
  2. RabbitMQ绑定(bindings)
  3. ruby打印_Ruby程序打印一个数字的乘法表
  4. 互联网晚报 | 2月21日 星期一 | 北京冬奥会闭幕;天猫将新增菜鸟驿站送货上门服务;上汽奥迪首款电动车型开启预售...
  5. CGAL中Polyhedron_3中与半边结构有关的具体使用
  6. 图像等比例缩放的函数封装(PHP)
  7. Postgresql去掉某个字段多余的空格
  8. 河北省计算机科学专业高校排名,河北省计算机类专业大学排名
  9. Linux下shell脚本的编写
  10. 史记翻译-汉初三杰-张良-留侯世家第二十五
  11. 推荐系统 - 排序算法 - 神经网络:FNN 论文阅读
  12. 《方块方舟》自定义服务器工具,方舟方块世界服务器建立方法
  13. Gif动图如何在线编辑?教你三步在线编辑动图
  14. 【JavaScript】制作一个抽奖转盘页面
  15. 商场根据会员积分打折
  16. 【美图 - 计算机视觉岗】2018 年在线笔试考点:选择 + 编程(顺时针旋转数组90°)
  17. Cadence PCB层的概念
  18. IPTV是什么意思-2020年还有人再问IPTV是什么
  19. DETR训练VOC数据集
  20. iOS7免费设计资源汇总

热门文章

  1. CentOS-6.4 安装 Memcached
  2. [javax.validation]验证
  3. [ZZ]HOW TO:使用 Visual Studio .NET 将 SQL Server 2000 存储过程添加到 Visual SourceSafe
  4. V8 JavaScript 引擎 6.6 发布,异步性能大幅提升
  5. Datamill 一个开源的框架
  6. 15款最佳的 jQuery 分步引导插件
  7. 机器学习--支持向量机实战(三)完整版SMO算法实现
  8. anaconda 安装在c盘_Anaconda安装和使用原来这么简单...
  9. python的基础_毫无基础的人如何入门 Python ?
  10. 支持MySql的数据库自动分表工具DBShardTools发布