随着移动互联网技术的发展,网络直播作为新兴的社交方式已引发新一轮媒介革命,迅速成为新媒体营销的新阵地,如何在直播竞争中取得领先优势,成为各个平台寻求差异化的动力,“互动直播”成为了直播发展的趋势。通过视频连麦,用户之间可以进行视频互动,达到更深层次的超越语言文字的交流。 互动直播对比传统单向直播,可以演变更多的互动玩法,大幅提升直播的趣味性与娱乐性。
互动直播与单向直播不同,赋予了普通观众“露脸发声”的权利,低延时的通信网络,主播可以实现与连麦观众的双向互动,在直播房间里的其他观众也可以观看主播和连麦观众互动的过程。在互动的时候还可以加上道具、美颜等滤镜,与陌生人进行视频互动聊天,是社交娱乐的典型场景。 基于三体云的互动直播技术,可以将原来的传统单向直播快速转变为互动直播场景,通过技术深度优化实现传统直播转换到互动连麦场景下的无缝切换。
观众通过CDN观看直播时,可以申请上麦,加入直播间与主播实时互动连线。- 登录三体云官网 http://dashboard.3ttech.cn/index/login 注册体验账号,进入控制台新建自己的应用并获取APPID。
- 下载DEMO源码,将APPID填入代码中相应的位置。
- 创建 TTT 音视频引擎对象 create
- 设置视频参数 setVideoProfile
- 设置音频编码 setPreferAudioCodec
- 启动本地视频预览 startPreview
- 设置本地视频显示属性 setupLocalVideo
- 开始rtmp推流 anchorStartRtmpPublish
- 上麦
- 设置音频编码 setPreferAudioCodec
- 设置角色 setClientRole
- 设置视频质量 setVideoProfile
- 加入房间 anchorJoinChannel
- 下麦
- 设置音频编码 setPreferAudioCodec
- 推流设置为直推 anchorStartRtmpPublish
- 退出直播 判断当前如果是上麦状态 leaveChannel,如果是下麦状态 stopRtmpPublish
- 在ondestroy中销毁 destroy
- 创建 TTT 音视频引擎对象 create
- 拉流 pullRtmp
- 上麦
- 设置音频编码 setPreferAudioCodec
- 设置角色 setClientRole
- 设置视频质量 setVideoProfile
- 上麦互动 audienceJoinChannel
- 下麦
- 拉流 pullRtmp
- 在ondestroy中销毁 destroy
- 翻转摄像头 switchCamera
- 观众拉流参数中需要传递一个viewgroup,上麦参数重需要传递相同的viewgroup
- 主播上麦下麦设置的音频参数需要统一 否则可能来回切换流造成观众解吗音频失败
- 针对SDK的回调类MyTTTRtcEngineEventHandler 需要在onJoinChannelSuccess onStatusOfRtmpPublish onRtcPushStatus onError onUserKicked onUserJoined onUserEnableVideo(uid, deviceID,enabled) onFirstRemoteVideoFrame(uid,deviceID,width,height,elapsed) 添加super
-
用Android Studio,打开 Android-AutoRTMPLive 工程,文件列表如图所示,复制 3T_Native_SDK_for_Androidi_V2.4.21(2020_01_14) 到工程 app 项目下的 libs 目录下。

-
最后编码代码即可运行Demo。
运行环境:
- Android Studio 3.0 +
- minSdkVersion 16
- gradle 4.6
- java 7.0
Android权限要求:
- android.permission.CAMERA ---> SDK视频模块需要使用此权限用来访问相机,用于获取本地视频数据。
- android.permission.RECORD_AUDIO ---> SDK音频模块需要使用此权限用来访问麦克风,用于获取本地音频数据。
- android.permission.INTERNET ---> SDK的直播和通讯功能,均需要使用网络进行上传。
- android.permission.BLUETOOTH ---> SDK的直播和通讯功能,均需要访问蓝牙权限,保证用户能正常使用蓝牙耳机。
- android.permission.BLUETOOTH_ADMIN ---> 蓝牙权限。
- android.permission.MODIFY_AUDIO_SETTINGS ---> SDK的直播和通讯功能,均需要访问音频路由,保证能正常切换听筒,扬声器,耳机等路由切换。
- android.permission.ACCESS_NETWORK_STATE ---> SDK的直播和通讯功能,均需要访问网络状态。
- android.permission.READ_PHONE_STATE ---> SDK的直播和通讯功能,均需要访问手机通话状态。
- 由于部分模拟器会存在功能缺失或者性能问题,所以 SDK 不支持模拟器的使用。






