拉流部分

2017-12-19  本文已影响20人  SuperMan_Wang

直播系列的最后一部分,在移动端进行播放。
有需要的请看之前的两部分:

在移动端进行播放,我选择用的是ijkplayer
IJKMediaFramework第三方库的合并集成及使用
这一篇简书写的很详细,可以按照步骤,一步步集成到你的项目中去。

接下来,在controller中

#import <IJKMediaFramework/IJKMediaFramework.h>

然后,

//这是拉流的地址,自己可以在服务端配置
#define INT_Strean @"rtmp://192.168.1.109:1935/live/asd"

再然后

@property (nonatomic, strong) IJKFFMoviePlayerController *player;
@property (nonatomic, strong) UIView *playView;
#pragma mark - 视图即将显示
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    
    //  当试图即将展示的时候开始播放
    [self.player prepareToPlay];

    //注册播放状态改变的通知    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playStatuDidchange:) name:IJKMPMoviePlayerPlaybackStateDidChangeNotification object:self.player];

}

#pragma mark - 视图已经消失
- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    //  关闭播放
    [self.player shutdown];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:IJKMPMoviePlayerPlaybackStateDidChangeNotification object:self.player];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    
    [IJKFFMoviePlayerController setLogReport:YES];
    [IJKFFMoviePlayerController setLogLevel:k_IJK_LOG_DEBUG];
    [IJKFFMoviePlayerController checkIfFFmpegVersionMatch:YES];
    
    _pp = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width * 0.49, [UIScreen mainScreen].bounds.size.height * 0.49)];
    _pp.center = CGPointMake(self.view.center.x*0.5, self.view.center.y);
    [self.view addSubview:_pp];
    
    
    IJKFFOptions *options = [IJKFFOptions optionsByDefault];
    [options setPlayerOptionIntValue:1  forKey:@"videotoolbox"];
    
    // 帧速率(fps) (可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97)
    [options setPlayerOptionIntValue:29.97 forKey:@"r"];
    // -vol——设置音量大小,256为标准音量。(要设置成两倍音量时则输入512,依此类推
    [options setPlayerOptionIntValue:512 forKey:@"vol"];
    
    NSURL *url = [NSURL URLWithString:[[NSUserDefaults standardUserDefaults] objectForKey:@"intURL"]];
    _player = [[IJKFFMoviePlayerController alloc] initWithContentURL:url withOptions:options];
    UIView *playView = [self.player view];
    UIView *displayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width * 0.49, [UIScreen mainScreen].bounds.size.height * 0.49)];
    displayView.center = CGPointMake(self.view.center.x*1.5, self.view.center.y);
    
    self.playView = displayView;
    self.playView.backgroundColor = [UIColor blackColor];
    [self.view addSubview:self.playView];
    
    playView.frame = self.playView.bounds;
    playView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [self.playView insertSubview:playView atIndex:1];
    [_player setScalingMode:IJKMPMovieScalingModeAspectFit];
    [_player setShouldAutoplay:YES];        //自动播放
    self.view.autoresizesSubviews = YES;    //自动更新自视图大小
    
        [_player play];  //开始播放方法
        
        [_player pause]; //暂停播放方法
上一篇 下一篇

猜你喜欢

热点阅读