市面上提供了很多的音视频聊天sdk,在直播APP开发中有很多种选择;假如需求变更导致了现有sdk无法很好的满足需求,需要替换sdk,如果全部重写或者基于原来代码进行魔改,代价太高;所以在前期编码的时候最好将UI逻辑和音视频逻辑进行区分,接下来介绍下直播APP基于腾讯sdk的处理。

1.抽象出Presnterpublic interface ICallPresnter {/*初始化*/public void init();/*退出房间*/public void exitRoom();/*进入房间*/public void enterRoom(int roomId);/*是否开启前置摄像头*/public void isFront(boolean isFront);/*开启关闭摄像头*/public void openCamera(boolean isOpen);/*是否开启免提*/public void isHandsFree(boolean isHandsFree);/*是否开启静音*/public void isMute(boolean isMute);/*是视频模式还是音频模式*/public void isVideo(boolean isVideo);/*获取当前的state层*/public CallLivingState getCallState();/*开启本地预览*/public void startSDKLocalPreview(boolean isPreview);/*持有View*/public void setCallView(IVideoCallView callView);/*资源释放方法*/public void release();
}
2. 抽象出View层public interface IVideoCallView<T extends View> {/*退出房间*/public void onExitRoom();/*Presnter层提供环境变量*/public Context getContext();/*Presnter层聊天者的窗口*/public T getVideoView(String id);/*Presnter层提供自己的主窗口*/public T getMainVideoView();/*监听视频另一方是否开启推流视频*/public void ontherOpenVideo(boolean isOpen);}
3. presnter和view互相持有抽象引用,并进行调用public VideoCallPresneter(@NonNull IVideoCallView iVideoCallView, int isRole) {this.iVideoCallView=iVideoCallView;tcRole=parseRole(isRole);callState=new CallLivingState();initParm();
}public void onExitRoom(int i) {super.onExitRoom(i);VideoCallPresneter presneter = presneterReference.get();if(presneter!=null&&presneter.iVideoCallView!=null){presneter.iVideoCallView.onExitRoom();}
}

以上就是在直播APP开发过程中,基于腾讯sdk的音视频功能实现的大体流程,即使直播APP中非常小的一个功能都需要技术人员进行开发,感兴趣的话可持续关注,后续会保持更新。
声明:本文由作者原创,转载须备注文章来源与作者。

直播APP开发时:基于腾讯sdk的音视频功能实现相关推荐

  1. 直播APP开发时需要注意的问题!

    2019独角兽企业重金招聘Python工程师标准>>> 想要开发APP的客户一般找开发商最多的就是问价格和二次开发问题,在这里,我奉劝大家不能够只是为了贪图小便宜去找那些价格低廉的开 ...

  2. 直播app开发之对接腾讯云直播sdk-安卓

    下载腾讯云直播SDK 首先,需要从腾讯云官网下载最新的腾讯云直播SDK,并将其添加到项目中. 添加权限 在 AndroidManifest.xml 文件中添加以下权限: phpCopy code< ...

  3. 直播app开发所需的三方

    三方服务是指由第三方提供的专业技术服务,在直播app开发中,为了让用户使用软件时更方便快捷,也为了节约开发时间.规避没必要的开发难度,时常会涉及很多三方服务,比如支付宝支付.QQ登录.微信朋友圈分享等 ...

  4. Android直播软件开发中接入腾讯IM大概流程是怎样的

    现阶段来看,直播软件中的即时通讯是非常重要的一个部分,毕竟直播过程中的交流和沟通是非常重要的,所以在Android直播软件开发时需要接入相关的IM服务. 通常我们选择的即时聊天服务,会选择集成简单方便 ...

  5. 直播APP开发:直播人数是否该有限制

    2019独角兽企业重金招聘Python工程师标准>>> 谈及直播,大众率先想到的一定是一对多的秀场直播或游戏直播,直播在中国兴起以来,就是一对多的模式在发展,所以一对多.视频直播等模 ...

  6. 直播APP开发:直播的广告效益和号召力分析

    2019独角兽企业重金招聘Python工程师标准>>> 因为大面积的广告投放及请了众多明星代言,<贪玩蓝月>和它的广告成为了游戏圈里流行的一个梗,很多人一张嘴就是&quo ...

  7. 直播APP开发:熊猫直播求续命,直播的多种玩法

    2019独角兽企业重金招聘Python工程师标准>>> 2016年,直播行业疯狂发展,随之兴起的便是斗鱼.虎牙.战旗.熊猫这些直播平台,而现在,王思聪的熊猫直播准备作价30亿,以一部 ...

  8. 直播APP开发:直播新动作,“直播+”继续

    2019独角兽企业重金招聘Python工程师标准>>> 2018年才刚开始,直播界就带来了新的东西,直播答题火了,但搜狗王小川在朋友圈表示,搜狗借助汪仔在"一站到底&quo ...

  9. 语音直播app开发--分布式系统

    伴随着系统内用户数和信息的数量不断增长,对系统容量及易用性的需求也会跟着提高,因而完成分布式架构刻不容缓.在连麦直播app开发中,有关分布式架构都要掌握什么内容呢? 一.分布式架构的优势与劣势 1.优 ...

最新文章

  1. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析
  2. Windbg教程-调试非托管程序的基本命令中
  3. C/C++预处理宏的总结
  4. freecodecamp能学php吗,freeCodeCamp 学习记录——初级算法「01」翻转字符串
  5. 二叉树建立及中序遍历C++语言实现
  6. iphone手机删除的照片怎么恢复
  7. 神器 Wineskin 基础教程
  8. cad批量打印快捷键_CAD布局批量打印必备工具之一
  9. 多ubuntu主机远程桌面连接方案
  10. Unity3D | FPS游戏_敌人相关
  11. 视频压缩大小怎么做?压缩视频用这3个工具准没错!
  12. prcs6汉化补丁怎么替换_最新 | EndNote X9.2授权版+汉化
  13. java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType的解决方案之一
  14. 【笃行】Button的选中与改变
  15. MATLAB 自动控制原理 传递函数单位阶跃响应曲线绘制
  16. webpack之配置es6转换成es5
  17. (三)改掉这些坏习惯,还怕写不出优雅的代码?
  18. http://www.cnblogs.com/ILove/archive/2008/04/07/1140419.html
  19. 九九乘法表c语言编程java,九九乘法表(c语言和java语言)+心得
  20. 关于Altium AD20出现的Net NetU2_26 contains floating input pins (Pin U2-26)Net NetU2_26 has only one pin

热门文章

  1. Z-Tech|你未知的极氪黑科技:3.8s背后的极芯
  2. 【hadoop生态之Hbase】HBASE的优化【笔记+代码】
  3. 分享八个我常用的资源网站
  4. python脚本文件变量设置_Python环境变量设置方法
  5. 猫吃老鼠问题的链表实现
  6. java drawimage 缩放_H5CanvasAPI中drawImage(图像进行缩放或裁剪)的使用实例
  7. Ⅰ.15 如何修改Squish函数
  8. 自己做量化交易软件(29)小白量化实战3--跨周期共振
  9. Mac本地软件打包dmg
  10. 18、【斯纳克图书馆管理系统】列印图书编号