#依旧没有头绪的第一个需求#
今天决定将整个demo的代码重新再看一次,还是找到了一个可能是切入点的位置,就是下面这个发布主端服务的函数(感觉也没有核心代码,就直接拿出来了,毕竟功能都是封装在SDK中的)。因为项目在启动时候,直接开启了从端服务,并且也有回收服务的调用。但是主端发布的函数并没有调用,随即在合适的位置初始化并回收服务,但仍然无区别。只能说这个这个需求真的找不到头绪了。准备找前辈问一下了,不过前辈今天有点忙,明天再找一下。
/** * 发布主端服务 */ fun publishMaster(content: Context) { Log.d(TAG, "publishMaster: start ") Handler(Looper.getMainLooper()!!).post { content.showToast("主播服务:准备发布...") } //发布一个指定类型的媒体同步主端服务。参数 Common.ServiceMediaSyncMaster 可能是一个常量,用于标识主端服务的类型 MsWrapper.publish(Common.ServiceMediaSyncMaster, "") var res = MsWrapper.start() if (res > 0){ Log.d(TAG, "publishMaster: start failed res = " + res) } setStatus("主播服务:已发布") }
#一点点学习#
一、Socket学习(UDP&TCP)
因为实在看这个项目代码看不下去了,就去学了点别的内容,上周五看了点Socket的内容,今天再看看,有个博客写的很不错,还有demo案例学习,狠狠地了解了一波。
https://blog.csdn.net/u011418943/article/details/92612997
https://blog.csdn.net/u011418943/article/details/92839617
https://blog.csdn.net/u011418943/article/details/93157556
https://blog.csdn.net/u011418943/article/details/93523767
感觉第一个需求里面如果真的要写本机转发主端服务的话(SDK中应该有),这部分内容将会是个很好的参考。
二、自定义Log日志工具类
在调试项目的过程中,写了大量的Log.v来打印日志,在demo中当然无所谓,但是等到正式项目中,要上线时候一行行删掉这些代码就有点蠢了,于是在项目中新增了LogUtils工具类(指只写了两种类型,后续有需要再添加)。使用工具类来替代直接调用Log类,这样等到真的项目上线时候,直接改一下level就可以对这些日志进行屏蔽。
object LogUtils { private var VERBOSE:Int=1 private var ERROR:Int=2 private var level=VERBOSE fun v(tag:String,msg:String){ if (level<=VERBOSE){ Log.v(tag,msg) } } fun e(tag:String,msg:String){ if (level<=ERROR){ Log.v(tag,msg) } } }