忘不了的石楠花
2015-12-18 08:03视频播放抖动(播放一小段然后再从头播放完)
下面是放在pageViewController里面的子VC来播放视频。
模仿微信做的图片选择器,在浏览图片的时候,如果遇到视频,可以在浏览过程中播放视频。本人新手,希望遇到过这种情况的大神指教一下,谢谢了。
#import "CHVideoPlayerViewController.h"
#import
@interface CHVideoPlayerViewController ()
{
MPMoviePlayerViewController _movie;
UITapGestureRecognizer *_tap;
/*
* 播放按钮
*/
UIImageView *_playerView;
}
@end
@implementation CHVideoPlayerViewController
-
(void)viewDidLoad {
[super viewDidLoad];_tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];
/**
- 视频播放对象 */ _movie = [[MPMoviePlayerViewController alloc] initWithContentURL:_url]; _movie.moviePlayer.controlStyle = MPMovieControlStyleNone; [_movie.view setFrame:self.view.bounds]; _movie.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; _movie.moviePlayer.scalingMode = MPMovieScalingModeAspectFit; _movie.moviePlayer.shouldAutoplay = NO; [_movie.view.subviews.firstObject addGestureRecognizer:_tap];
_playerView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bofang64"]];
_playerView.backgroundColor = [UIColor clearColor];
// [_playerView addGestureRecognizer:_tap];
_playerView.center = _movie.view.center;
[_movie.view addSubview:_playerView];[self.view addSubview:_movie.view];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myMovieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
}
(void)myMovieFinishedCallback:(NSNotification*)notification
{
_playerView.alpha = 1;
self.navigationController.navigationBar.alpha = 0.5;
self.navigationController.toolbar.alpha = 0.5;
}(void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}-
(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[_movie.moviePlayer prepareToPlay];if (_movie.moviePlayer.playbackState == MPMoviePlaybackStatePlaying) {
self.navigationController.navigationBar.alpha = 0;
self.navigationController.toolbar.alpha = 0;
_playerView.alpha = 0;
}else {
self.navigationController.navigationBar.alpha = 0.5;
self.navigationController.toolbar.alpha = 0.5;
_playerView.alpha = 1;
}
}
(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
}(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
[_movie.moviePlayer stop];
}-
(void)tapAction:(UITapGestureRecognizer *)tap {
if (_movie.moviePlayer.playbackState == MPMoviePlaybackStatePlaying) {
[_movie.moviePlayer pause];
self.navigationController.navigationBar.alpha = 0.5;
self.navigationController.toolbar.alpha = 0.5;
_playerView.alpha = 1;
}else {
self.navigationController.navigationBar.alpha = 0;
self.navigationController.toolbar.alpha = 0;
[UIView animateWithDuration:0.5 animations:^{
_playerView.alpha = 0;
_playerView.transform = CGAffineTransformMakeScale(5, 5);
} completion:^(BOOL finished) {
_playerView.transform = CGAffineTransformIdentity;
[_movie.moviePlayer play];
}];}
}
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- 请问图中是什么情况,训练集和测试集准确率、loss值变化不大
- 深度学习
- tensorflow
- 神经网络
- python
- 自然语言处理
- 2个回答
- AJAX - 尝试使用去抖动实现实时搜索
- javascript
- ajax
- underscore.js
- jquery
- php
- 1个回答
- 防止无状态系统中的重复表单提交
- angular
- laravel
- php
- 3个回答
- ext tree节点 当节点的text属性,文字过长时 tree有明显的抖动
- ext
- javascript
- 0个回答
- js 用 absolute模拟fixed 出现闪动 有什么解决方法没
- javascript
- 2个回答