简单拉流
来源:互联网 发布:淘宝卖家聊天软件 编辑:程序博客网 时间:2024/04/28 22:30
转载地址: https://github.com/SunLiner/MiaowShow
#import "ViewController.h"#import <IJKMediaFramework/IJKMediaFramework.h>@interface ViewController ()/** 直播播放器 */@property (nonatomic, strong) IJKFFMoviePlayerController *moviePlayer;/** 直播流地址 */@property (nonatomic, copy ) NSString *flv;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; _flv = @"rtmp://192.168.8.164:1935/zbcs/room"; [self plarFLV:_flv];}#pragma mark - private method- (void)plarFLV:(NSString *)flv{ IJKFFOptions *options = [IJKFFOptions optionsByDefault]; [options setPlayerOptionIntValue:1 forKey:@"videotoolbox"]; // 帧速率(fps) (可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97) // [options setPlayerOptionIntValue:29.97 forKey:@"r"]; [options setOptionIntValue:29.97 forKey:@"r" ofCategory:kIJKFFOptionCategoryPlayer]; [options setOptionIntValue:60 forKey:@"max-fps" ofCategory:kIJKFFOptionCategoryPlayer]; [options setOptionIntValue:IJK_AVDISCARD_DEFAULT forKey:@"skip_frame" ofCategory:kIJKFFOptionCategoryCodec]; [options setOptionIntValue:IJK_AVDISCARD_DEFAULT forKey:@"skip_loop_filter" ofCategory:kIJKFFOptionCategoryCodec]; [options setOptionIntValue:1 forKey:@"videotoolbox" ofCategory:kIJKFFOptionCategoryPlayer]; // -vol——设置音量大小,256为标准音量。(要设置成两倍音量时则输入512,依此类推 [options setPlayerOptionIntValue:512 forKey:@"vol"]; _moviePlayer = [[IJKFFMoviePlayerController alloc] initWithContentURLString:flv withOptions:options]; _moviePlayer.view.frame = self.view.bounds; // 填充fill _moviePlayer.scalingMode = IJKMPMovieScalingModeAspectFill; // 设置自动播放(必须设置为NO, 防止自动播放, 才能更好的控制直播的状态) _moviePlayer.shouldAutoplay = NO; // 默认不显示 _moviePlayer.shouldShowHudView = NO; [self.view insertSubview:_moviePlayer.view atIndex:0]; [_moviePlayer prepareToPlay]; [_moviePlayer play]; // 设置监听 [self initObserver];}- (void)initObserver{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stateDidChange) name:IJKMPMoviePlayerLoadStateDidChangeNotification object:_moviePlayer];}#pragma mark - notify method- (void)stateDidChange{ if ((_moviePlayer.loadState & IJKMPMovieLoadStatePlaythroughOK) != 0) { if (!_moviePlayer.isPlaying) { [_moviePlayer play]; } }else if (_moviePlayer.loadState & IJKMPMovieLoadStateStalled){ // 网速不佳, 自动暂停状态 NSLog(@"网速不佳"); }}@end
记得添加 IJKMediaFramework.framework , 然后还有 libz.tbd , 可以用上一篇的服务地址进行测试。
延迟很大, 但是可以测试用。
0 1
- 简单拉流
- 简单的侧拉
- iOS简单直播实现(三:IJKMediaFramework拉流)
- poj2230Watchcow(简单欧拉回路)
- 欧拉函数简单应用
- HDU 1878 欧拉回路(简单欧拉回路判定)
- hdu 1878 欧拉回路(简单欧拉回路)
- Android Recyclerview 简单实用 瀑布流等方式,并加入上下拉加载
- 最简单的div收拉菜单
- 欧拉回路及其简单应用
- HDU1418抱歉(简单的欧拉公式)
- 简单实现---上拉加载刷新---
- hdu2824(简单欧拉函数)
- android 简单的上拉加载实现
- poj 2230 (简单欧拉回路)
- poj1300doorman欧拉回路简单应用
- 简单的ListView上拉加载
- viewpager+横拉菜单简单示例
- 不进则退|进取,可以解决一切问题.
- 2160: 拉拉队排练
- QT:打包
- 169. Majority Element
- 数据结构实验之链表三:链表的逆置
- 简单拉流
- 4.1 ipu_common.c分析---入口函数及probe函数分析
- android开发之用户头像上传
- Android Studio的简单设置
- E. Sum of Remainders (数学)★
- Python基础-2 专用下划线标识符
- MySQL(八)单表数据记录查询
- Caffe使用step by step:caffe框架下的基本操作和分析
- 通过UDF使mysql主动刷新redis缓存