2017-02-08 10 views
0

когда я выдвигаю страницу для возврата, AVPlayer Не работает должным образомAVPlayer Не работает должным образом

--------------------------- ----------------

#import "TestAVPlayerViewController.h" 
#import <AVFoundation/AVFoundation.h> 
#import "TestAVPlayer-Swift.h" 

@interface TestAVPlayerViewController() 

@property (strong, nonatomic) AVPlayer *player; 
@property (strong, nonatomic) AVPlayerItem *playerItem; 
@property (strong, nonatomic) AVPlayerLayer * playerLayer; 

@end 

@implementation TestAVPlayerViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [self initUI]; 

    [self isEnableFullScreenReturn]; 
} 

- (void)initUI{ 

    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds]; 
    scrollView.contentSize = CGSizeMake(self.width, self.height * 2); 
    scrollView.backgroundColor = [UIColor orangeColor]; 
    [self.view addSubview:scrollView]; 

    NSString *playURL = @"http://v.jxvdy.com/sendfile/w5bgP3A8JgiQQo5l0hvoNGE2H16WbN09X-ONHPq3P3C1BISgf7C-qVs6_c8oaw3zKScO78I--b0BGFBRxlpw13sf2e54QA"; 

    AVAsset *asset = [AVURLAsset URLAssetWithURL:[NSURL URLWithString:playURL] options:nil]; 

_playerItem = [AVPlayerItem playerItemWithAsset:asset]; 
_player = [[AVPlayer alloc]initWithPlayerItem:self.playerItem]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive:YES error:nil]; 

_playerLayer = [AVPlayerLayer playerLayerWithPlayer:_player]; 
_playerLayer.frame = CGRectMake(0, 150, 300, 300); 
_playerLayer.backgroundColor = [UIColor blackColor].CGColor; 

[scrollView.layer insertSublayer:_playerLayer atIndex:1]; 

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
    [_player play]; 
    }); 

} 
- (CGFloat)width{ 
    return self.view.bounds.size.width; 
} 
- (CGFloat)height{ 
    return self.view.bounds.size.height; 
} 

--------------------------- --------------- Как исправить эту проблему, я надеюсь, что она хорошо работает на обратном пути.

+0

Кто-нибудь знает, как его решить? – Snow

ответ

1

Yo u're только воспроизводить видео на viewDidLoad, поэтому, когда представление появляется после того, как пользователь «вернется» к вашему просмотру, видео не начнет воспроизводиться.

Попробуйте положить ваши [_player игра] вызов в viewDidAppear, например:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.player play]; 
} 

Если вы сделаете это, не забудьте удалить игровой вызов в методе initUI, потому что вам не нужно чтобы игрок дважды играл.

+0

На обратном пути на странице воспроизводится видео Caton Страница возвращается в половину времени Вы знаете, как решить эту проблему? – Snow

+0

Я думаю, вы можете спросить, почему видео не играет с самого начала. Если это так, вам просто нужно вызвать '[self.player seek: kCMTimeZero];' – Shackleford

+0

Не начало, но не воспроизведение, но при воспроизведении на странице по дороге играйте в Caton. Я думаю, что это ошибка, я хочу, чтобы на обратном пути тоже нормальная игра – Snow