拉流部分
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]; //暂停播放方法