攝像頭推流,是指採集手機攝像頭的畫面以及麥克風的聲音,進行編碼以後再推送到直播雲平臺上。騰訊雲 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 受權」 中的工做是否有問題。