Android直播的集成
最近公司的项目需要集成直播的功能,直播的sdk用的是263展视互动平台的sdk,该平台的网址是:http://www.gensee.com/
我们首先来看下运行在手机上的效果:
我集成的是Android-Fast SDK,Fast SDK包括发布(主播)和观看(观众)两大部分,界面完整(不支持定制,类似花椒、映客),目前发布(主播)支持横竖屏2种表现形式,同时有软硬编码、标清高清等切换参数。观看端目前有分屏和全屏2个模式,分屏模式支持常见的视频、文档、聊天、问答、音视频互动(只能打开一路视频)、打赏、投票、点名等等常用的功能,推荐使用,用户可参照后面的功能清单,看是否能覆盖自己的需求。
在这里简单的记录下自己的集成过程和遇到的问题。
首先进入展视互动平台-->帮助与下载-->开发者,如下图所示:
然后选择Android-Fast SDK集成开发文档:
下载Android sdk 如下图所示:
解压后得到如下的内容:
进而再将上图中红色标注的进行解压得到一个demo工程,demo的结构如下所示:
其中resourceLib是一个library工程,主要包含了聊天表情资源和资源的加载
fastSdk也是一个library工程,主要包括FastSDK相关的资源及资源加载
FastSdkDemo才是android application工程,包含的测试输入界面
实际使用的jar和so在fastSdk的libs目录下,如需调整或更新的时候同时注意下resourceLib的libs目录的jar
demo就是android studio工程,直接导入AndroidStudio运行即可,如果导入失败或导入出错,请开发者自行创建一个工程,并对应的创建3个module(两个library,一个application),分别将对应的src和res移植到新建的工程中。然后fastSDK依赖resourceLib,demo或实际开发工程依赖于fastSDK。
下面我以AndroidStudio作为开发工具创建一个新的工程来进行直播的集成。
1.导入
将resourceLib和fastSdk作为library添加到新工程中如下图所示:
fastSDK依赖resourceLib,如下图所示:
实际开发工程依赖于fastSDK,如下图所示:
2.权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-feature android:name="android.hardware.camera.flash" /> <uses-feature android:name="android.hardware.camera.setParameters" />
说明:如果targetSdkVersion 大于或等于23的情况下,请各位开发者在代码中优先为app申请上面的权限,尤其是"android.permission.CAMERA, android.permission.RECORD_AUDIO,
android.permission.WRITE_EXTERNAL_STORAGE等。
3.实际开发工程清单文件activity
请各位开发者在实际工程中配置如下activity
<activity
android:name="com.gensee.fastsdk.ui.portrait.PublishActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" />
<activity
<activity
android:name="com.gensee.fastsdk.ui.portrait.WatchActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" />
<activity
android:name="com.gensee.fastsdk.ui.LiveActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:launchMode="singleTask"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden|adjustResize">
</activity>
4.调用:
InitParam initParam = new InitParam();//若一个url为http://test.gensee.com/site/webcast 域名是“test.gensee.com”initParam.setDomain(et_domain.getText().toString());//设置对应编号,如果是点播则是点播编号,是直播便是直播编号。//请注意不要将id理解为编号。//作用等价于id,但不是id。有id可以不用编号,有编号可以不用idinitParam.setNumber(et_room_number.getText().toString());//设置站点认证账号 即登录站点的账号initParam.setLoginAccount("");//设置站点认证密码 即登录站点的密码,如果后台设置直播需要登录或点播需要登录,那么登录密码要正确 且帐号同时也必须填写正确initParam.setLoginPwd("");//设置昵称 用于直播间显示或统计 一定要填写initParam.setNickName(et_nickName.getText().toString());//可选 如果后台设置了保护密码 请填写对应的口令initParam.setJoinPwd(et_join_psw.getText().toString());//第三方认证K值,如果启用第三方集成的时候必须传入有效的K值initParam.setK(et_k.getText().toString());//若一个url为http://test.gensee.com/site/webcast ,serviceType是 ServiceType.WEBCAST,//url为http://test.gensee.com/site/training,serviceTypeserviceType是 ServiceType.TRAININGinitParam.setServiceType(serviceType);GSFastConfig gsFastConfig = new GSFastConfig();gsFastConfig.setPublish(isPublishMode);//是否是主播端,false和默认观看端gsFastConfig.setPublishScreenMode(GSFastConfig.PUB_SCREEN_MODE_PORTRAIT);//发布端屏幕方向gsFastConfig.setWatchScreenMode(watchScreenMode);//观看端屏幕方向gsFastConfig.setHardEncode(true);//编码方式:硬编,软编gsFastConfig.setPubQuality(GSFastConfig.PUB_QUALITY_SD);//视频分辨率//分屏观看端,界面配置gsFastConfig.setShowDoc(true);//是否显示文档gsFastConfig.setShowChat(true);//是否显示聊天gsFastConfig.setShowQa(true);//是否显示问答gsFastConfig.setShowIntro(true);//是否显示简介gsFastConfig.setShowPIP(true);//是否显示全屏模式画中画gsFastConfig.setShowHand(true);//是否显示举手
// gsFastConfig.setShowRateSwitch(getBooleanFromPrefrences(SettingActivity.GS_RATE));gsFastConfig.setShownetSwitch(true);//是否显示优选网络gsFastConfig.setShowDanmuBtn(true);//是否显示弹幕开关gsFastConfig.setShowCloseVideo(true);//是否显示关闭视频gsFastConfig.setSkinType(GSFastConfig.SKIN_TYPE_NIGHT);//皮肤GenseeLive.startLive(MainActivity.this,gsFastConfig,initParam);}
到此已经全部集成完,运行工程可以进入如下的界面:
填入相应的参数就可以进入直播,如果想看demo的效果可以点击下载。
Android直播的集成相关推荐
- android 自定义推流器,Android直播实现 Android端推流、播放
最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代码 ...
- android 推流地址可以多人用,Android直播实现(一)Android端推流、播放
Android直播实现(一)Android端推流.播放 最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源 ...
- Android直播软件开发中接入腾讯IM大概流程是怎样的
现阶段来看,直播软件中的即时通讯是非常重要的一个部分,毕竟直播过程中的交流和沟通是非常重要的,所以在Android直播软件开发时需要接入相关的IM服务. 通常我们选择的即时聊天服务,会选择集成简单方便 ...
- Android直播实现(一)Android端推流、播放
最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代码 ...
- Android直播实现(Android端推流、播放)
最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代码 ...
- Android 直播 APP实现直播流程
Android 直播 APP实现直播流程 直播本质 1. 主播端采集音视频 2. 视频处理(美颜,水印) 3. 视频编解码 视频编码框架 视频编码技术 压缩方式 视频编解码和压缩时的关键知识点 4. ...
- Android 直播 弹幕
Android 直播 弹幕 弹幕使用场景 弹幕引擎(`B站开源弹幕`) DanmakuFlameMaster 特点 DanmakuFlameMaster 细节API 集成B站弹幕 参考 弹幕使用场景 ...
- Android直播系统的实现,直播APP开发Android端推流及播放
想实现一个Android的直播系统,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代 ...
- Android直播带货系统中如何实现二维码扫描功能
自李佳琦的出现将直播带货成功的引向了"巅峰",为了响应众平台和用户的需求,开发Android直播带货系统成为当下的开发热潮.那么在平时的直播软件中,登录.分享.支付等场景中经常出现 ...
最新文章
- 《深入浅出Windows Phone 8应用开发》
- 那些学校计算机招不满,那些招不满人的985院校,请留意!
- APK签名导出向导 - Use the Export Wizard
- Cython fatal error C1083: 无法打开包括文件: “numpy/arrayobject.h”: No such file or directory
- 直播预告 | 共识、区块链和全球一体化经济
- 使用pycharm配置flask项目,并使用git进行版本控制
- python什么时候用eval_Python:eval的妙用和滥用
- 【HDU5482】Numquam vincar,暴力(da biao)预处理+组合数
- 学习拾遗--用RadioButtonList 或者DropDownList 进行动态赋值问题
- VO、DTO、DO、PO的概念
- sklearn 中的 Pipeline 机制
- GitHub网站项目下载速度过慢、下载失败问题成功解决
- Linux中mount挂载命令及其概念
- jieba 使用笔记
- dosbox运行C语言,DOSBox-DOS模拟器-DOSBox下载 v0.74官方版-完美下载
- 瑟瑟发抖小网工之ISIS协议
- IPK轻量级密钥技术在电力卫星物联网中的接入与非证书签名认证
- 活水决策体系五:自我觉察与控制
- grafana设置邮件监控报警
- 放假在家/异地/无法使用学校局域网-如何快速登录知网/web of science等学术平台