1.架构设计为多线程,每个线程中采用EventHandler来维系状态交替,线程之间通过将Handler传入其他的线程中关键函数的构造函数来完成线程间的通信。
具体的例子如:MediaPlayer中创建了自己的EventHandler,并设置了MediaPlayer的各种状态和接收到不同状态通知时应该处理的事情。然后将该EventHandler传入到Player这个类的构造函数中,同时Player自身也创建了自己的HandlerThread,用于维系Player thread的状态,player自身状态在发生变化的时候将信息通过MediaPlayer线程传递过来的Handler来将信息传递给MediaPlayer线程。同时Player自身又将自己的Handler传递给了DashSource中的构造函数,以便能够监测DashSource中的各种变化。接下来DashSource又采用相同的方式来建立与DashSession之间的通信机制。
架构设计