android摄像头推流
功能概述
摄像头推流,是指采集手机摄像头的画面以及麦克风的声音,进行编码之后再推送到直播云平台上。腾讯云 LiteAVSDK 通过 TXLivePusher 接口提供摄像头推流能力,如下是 LiteAVSDK 的简单版 Demo 中演示摄像头推流的相关操作界面:
不绑定腾讯云
SDK 不绑定腾讯云,如果要推流到非腾讯云地址,请在推流前设置 TXLivePushConfig 中的 enableNearestIP为 NO。但当您要推流的地址为腾讯云地址时,请务必在推流前将其设置为 YES,否则 SDK 针对腾讯云的协议优化将不能发挥作用。
真机调试
由于 SDK 大量使用 Android 系统的音视频接口,这些接口在仿真模拟器下往往不能工作,推荐您尽量使用真机调试。
功能对接
-
下载 SDK 开发包
下载 SDK 开发包,并按照 SDK 集成指引 将 SDK 嵌入您的 App 工程中。 -
给 SDK 配置 License 授权
单击 License 申请 获取测试用 License,您会获得两个字符串:其中一个字符串是 licenseURL,另一个字符串是解密 key。
在您的 App 调用企业版 SDK 相关功能之前(建议在 Application类中)进行如下设置:
public class MApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
String licenceURL = ""; // 获取到的 licence url
String licenceKey = ""; // 获取到的 licence key
TXLiveBase.getInstance().setLicence(this, licenceURL, licenceKey);
}
}
- 初始化 TXLivePusher 组件
首先创建一个TXLivePushConfig对象。该对象可以指定一些高级配置参数,但一般情况下我们不建议您操作该对象,因为我们已经在其内部配置好了所有需要校调的参数。之后再创建一个 TXLivePusher 对象,该对象负责完成推流的主要工作。
TXLivePushConfig mLivePushConfig = new TXLivePushConfig();
TXLivePusher mLivePusher = new TXLivePusher(this);
// 一般情况下不需要修改 config 的默认配置
mLivePusher.setConfig(mLivePushConfig);
4. 开启摄像头预览
欲展示摄像头的预览画面,您需要先给 SDK 提供一个用于显示视频画面的TXCloudVideoView对象,由于TXCloudVideoView是继承自 Android 中的FrameLayout,所以您可以直接在 xml 文件中添加一个视频渲染控件:
<com.tencent.rtmp.ui.TXCloudVideoView
android:id="@+id/pusher_tx_cloud_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
之后,就可以通过调用 TXLivePusher 中的startCameraPreview接口开启当前手机摄像头的预览画面。
//启动本地摄像头预览
TXCloudVideoView mPusherView = (TXCloudVideoView) findViewById(R.id.pusher_tx_cloud_view);
mLivePusher.startCameraPreview(mPusherView);
- 启动和结束推流
如果已经启动了摄像头预览,就可以调用 TXLivePusher 中的startPusher接口开始推流。
String rtmpURL = "rtmp://test.com/live/xxxxxx"; //此处填写您的 rtmp 推流地址
int ret = mLivePusher.startPusher(tRTMPURL.trim());
if (ret == -5) {
Log.i(TAG, "startRTMPPush: license 校验失败");
}
<