2017-02-08 13 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 viewDidLoadでビデオを再生しているだけなので、ユーザーがビューに戻るとビューが表示されたときにビデオの再生が開始されません。あなたがこれを行う場合は、必要がないので、initUI方法であなたのプレイコールを削除することを忘れないでください

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

は、例えばviewDidAppearにあなたの[プレイ_player]コールを、入れてみてくださいプレイヤーに2回プレイするように指示します。

+0

ページに戻ってきて、ビデオが再生されます。Caton ページが半分の時間に戻ります この問題の解決方法をご存知ですか? – Snow

+0

ビデオが最初から再生されていない理由を聞いているかもしれないと思います。その場合、 '[self.player seek:kCMTimeZero]; – Shackleford

+0

を呼び出す必要があります。最初は再生されませんでしたが、再生中に途中のページに戻ると、再生はCatonになります。 これはバグだと思います。 – Snow

関連する問題