摄像头推流,是指采集手机摄像头的画面以及麦克风的声音,进行编码以后再推送到直播云平台上。腾讯云 LiteAVSDK 经过 TXLivePusher 接口提供摄像头推流能力,以下是 LiteAVSDK 的简单版 Demo 中演示摄像头推流的相关操做界面:java
enableNearestIP
为 false。但当您要推流的地址为腾讯云地址时,请务必在推流前将其设置为 YES,不然 SDK 针对腾讯云的协议优化将不能发挥做用。所属平台git
GitHub 地址github
关键类segmentfault
iOSapp
Github工具
CameraPushViewController.m测试
Android优化
Github动画
CameraPushImpl.java编码
下载 SDK 开发包,并按照 SDK 集成指引 将 SDK 嵌入您的 App 工程中。
单击 License 申请 获取测试用的 License,您会得到两个字符串:一个字符串是 licenseURL,另外一个字符串是解密 key。
在您的 App 调用 LiteAVSDK 的相关功能以前(建议在 - [AppDelegate application:didFinishLaunchingWithOptions:]
中)进行以下设置:
@import TXLiteAVSDK_Professional; @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSString * const licenceURL = @"<获取到的licenseUrl>"; NSString * const licenceKey = @"<获取到的key>"; //TXLiveBase 位于 "TXLiveBase.h" 头文件中 [TXLiveBase setLicenceURL:licenceURL key:licenceKey]; NSLog(@"SDK Version = %@", [TXLiveBase getSDKVersionStr]); } @end 复制代码
首先建立一个TXLivePushConfig
对象。该对象能够指定一些高级配置参数,但通常状况下咱们不建议您操做该对象,由于咱们已经在其内部配置好了全部须要校调的参数。以后再建立一个TXLivePush
对象,该对象负责完成推流的主要工做。
TXLivePushConfig *_config = [[TXLivePushConfig alloc] init]; // 通常状况下不须要修改默认 config TXLivePush *_pusher = [[TXLivePush alloc] initWithConfig: _config]; // config 参数不能为空 复制代码
调用 TXLivePush 中的startPreview
接口能够开启当前手机的摄像头预览。您须要为startPreview
接口提供一个用于显示视频画面的 view 对象。
//建立一个 view 对象,并将其嵌入到当前界面中 UIView *_localView = [[UIView alloc] initWithFrame:self.view.bounds]; [self.view insertSubview:_localView atIndex:0]; _localView.center = self.view.center; //启动本地摄像头预览 [_pusher startPreview:_localView]; 复制代码
注意:
若是要给 view 增长动画效果,须要修改 view 的 transform 属性而不是 frame 属性。
[UIView animateWithDuration:0.5 animations:^{ _localView.transform = CGAffineTransformMakeScale(0.3, 0.3); //缩小1/3 }]; 复制代码
若是已经经过startPreview
接口启动了摄像头预览,就能够调用 TXLivePush 中的startPush
接口开始推流。563513413,无论你是大牛仍是小白都欢迎入驻
//启动推流 NSString* rtmpUrl = @"rtmp://test.com/live/xxxxxx"; //此处填写您的 rtmp 推流地址 [_pusher startPush:rtmpUrl]; 复制代码
推流结束后,能够调用 TXLivePush 中的stopPush
接口结束推流。请注意,若是已经启动了摄像头预览,请在结束推流时将其关闭,不然会致使 SDK 的表现异常。
//结束推流 [_pusher stopPreview]; //若是已经启动了摄像头预览,请在结束推流时将其关闭。 [_pusher stopPush]; 复制代码
startPush
接口返回 -5,则表明您的 License 校验失败了,请检查 第2步“给 SDK 配置 License 受权” 中的工做是否有问题。