问题①:弹幕有时候没有从最右边出现,一开始就显示在弹幕区中间,是因为上一条弹幕划过改变了起始位置。

mDanmakuView.pause();
mDanmakuView.addDanmaku(danmaku);
mDanmakuView.resume();

在添加弹幕前暂停,添加完之后恢复,要注意的是该方法有可能阻塞消息并发,最好放在最终添加弹幕处处理该问题,比如在addDanmuInternal方法的添加弹幕处修改。


问题②:主播端横竖屏直播,弹幕显示问题。

在上篇博客腾讯云直播下中提到过横竖屏推流的处理,现在出现的一个问题是 onConfigurationChanged方法没有被调用,但是主播旋转手机的时候确实是在横竖屏推流切换,那么弹幕区的布局就会导致弹幕对于主播来说并不总是从右往左。所以我们需要主播端的activity按照重力感应器处理界面横竖屏。解决方案如下

一、添加权限

<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

二、强制开启屏幕旋转效果,将横竖屏的处理交还给SENSOR传感器,放在onCreate的setContentView之后就好。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

注意:当横屏直播时主播直接退出直播,finish掉直播activity时,相关联的界面是竖屏模式会造成崩溃的可能,可以在manifest文件中配置主播activity和相关的activity属性android:screenOrientation="portrait"



问题③:观看端半屏全屏播放控制

我们一般会给视频播放器添加一个全屏按钮,以便于观众可以自由选择喜欢的观看模式,那么该如何设置按钮和activity的状态呢。半屏全屏可以根据布局的weight来分配播放器的空间,全屏时腾讯云提供了视频播放旋转270度的方法,但是该方法并不会改变activity的横竖屏状态,所以就会出现弹幕方向以及软键盘弹出方向都不对的问题。下面提供一种设置方法。

 @Overridepublic void onNetStatus(Bundle bundle) {int width = Integer.parseInt(bundle.get(TXLiveConstants.NET_STATUS_VIDEO_WIDTH).toString());int height = Integer.parseInt(bundle.get(TXLiveConstants.NET_STATUS_VIDEO_HEIGHT).toString());if (width != 0 && height != 0) {if (width > height) {// 横屏推流isPortraitPusher = false;if (fullScreen) {mTxlpPlayer.pause();setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);mTxlpPlayer.resume();}} else {// 竖屏推流isPortraitPusher = true;if (fullScreen) {mTxlpPlayer.pause();setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);mTxlpPlayer.resume();}}}}

以上是腾讯云提供的一个观看端的状态回调,每秒响应一次,其中setRequestedOrientation方法就是设置activity状态的关键。当然manifest依然需要配置configChanges属性。该方法解决了横竖屏问题,相关的页面布局也就会跟随变化,你如果嫌这种页面布局丑又不怕麻烦的话可以让UI设计两套布局分别放置在不同的layout文件夹效果如下。



问题④:主播端预览画面黑屏(部分机器,比如小米Max 荣耀8)

mTXCloudVideoView.enableHardwareDecode(true);

在开始摄像头预览前加入以上代码,作用为开启硬件加速,可改变部分机型不能支持直播需要的资源消耗 cpu gpu 等情况,还能让正常的机型更好的支持直播功能。


一些解释:本来预备将demo上传csdn,各位码友看博客介绍时也好有个参考,demo有问题也可以相互探讨,奈何csdn限制太高,本码农等级太低只有60M的上传权限,所以就传个简洁版,有问题可以留言提出相互探讨demo链接

腾讯云直播相关问题处理相关推荐

  1. 推流地址 java_Java实现腾讯云直播生成推流地址和播放地址

    最近在做小程序直播,用到了腾讯云直播,下面为相关文档和程序 URL规则:https://cloud.tencent.com/document/product/267/13457 防盗链计算:https ...

  2. 【安卓学习之互动直播】 腾讯云直播 1 - 注册/登录/个人信息

    █ [安卓学习之互动直播] 腾讯云直播 1 - 注册/登录/个人信息 █ 相关文章: ● [安卓学习之互动直播] 腾讯云直播 1 - 注册/登录/个人信息 ● [安卓学习之互动直播] 腾讯云直播 2 ...

  3. 腾讯云直播功能(云直播为例)

    背景 项目中若涉及到即时通信IM或者直播这种业务场景的,一般都会选择第三方服务,而腾讯在这方面做的还是很好的,QQ和微信的统治力显而易见. 腾讯的服务接口都是以API文档的形式提供给开发者的,使用的时 ...

  4. 腾讯云直播代码 java_JAVA 对接腾讯云直播的实现

    签名授权 public static T TecentDoPostJsonV3(String url,String key,String secretId, TecentPublicParams he ...

  5. 腾讯云直播SDK接入指南

    现如今直播类的app,如映客,抖音,火山视频等APP,基本大家手里都会安装,很多公司都可能会研发自己的直播系统,在2020年疫情阶段,很多老师采用了远程直播授课的方式.在国内如果你想使用直播技术,那么 ...

  6. ***腾讯云直播(含微信小程序直播)研究资料汇总-原创

    ***腾讯云直播(含微信小程序直播)研究资料汇总-原创 原文: ***腾讯云直播(含微信小程序直播)研究资料汇总-原创 这段时间抽空研究了下直播技术,综合比较了下腾讯云直播的技术和文档方面最齐全,现把 ...

  7. 腾讯云直播答题方案解析

    2019独角兽企业重金招聘Python工程师标准>>> 欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:  腾讯视频云 进入2018年最火的新鲜事物无疑就是" ...

  8. 一文带你深度解析腾讯云直播答题方案

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯视频云 进入2018年最火的新鲜事物无疑就是"直播答题"了,动辄上百万的奖金更是吸引了大量用户的参与.一场直播动辄 ...

  9. 腾讯云直播-调用腾讯云RoomService

    LiveRoom 如果您只需要做一个简单的直播方案,也就是:主播推流 + 观众观看 + 文字互动,参考单场次直播,或者 自由开播 就可以解决问题. 但是如果您要上连麦功能,单纯依靠 TXLivePus ...

最新文章

  1. 当我们输入一条SQL查询语句时,发生了什么?
  2. 让Windows 7揪出每一个暗中运行程序
  3. Git系列之(七) 常用指令 git reset
  4. GOPATH与工作空间
  5. android ringtone获取uri,android – 如何通过文件路径从MediaStore获取Uri?
  6. T-SQL RAND()
  7. 音视频技术开发周刊 | 191
  8. 二级数据库access和mysql_二级数据库access和mysql
  9. 15款免费IDE,推荐给开发者
  10. 实现机器学习的循序渐进指南I——KNN
  11. 利用Python求阶乘
  12. 全球最大的第一视角视频数据集开源,取自真实生活,还能提升厨艺
  13. 第4章 URL管理器和实现方法
  14. Spring与策略模式
  15. fatal error: stropts.h: 没有那个文件或目录
  16. linux下部署selenium爬虫程序
  17. 计算机能不能升级固态硬盘,笔记本升级固态硬盘后会怎样?秒懂
  18. 地震观测仪器的历史和发展趋势(三)
  19. DirectX11 计时和动画
  20. kettle报错 Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL‘ driver

热门文章

  1. Linux系统异常夯死或宕机分析
  2. OSI七层模型功能及相关设备
  3. spin_lock 自旋锁
  4. CentOS 安装HTTP代理服务器Tinyproxy---配置简捷
  5. 计算机专业毕业设计致谢,计算机毕业论文致谢范文3篇
  6. 注册Google邮箱,也许你就差这一步
  7. matlab 4轴机器人建模,MATLAB机器人工具箱6轴机械臂DH建模仿真
  8. RabbitMQ实现订单超时设计思路、以及在订单过期临界点支付成功如何处理
  9. Python基础Pro | (17) 电子邮件
  10. 在sqli-liabs学习SQL注入之旅(第十一关~第二十关)