連麥系列之小窗口點擊切換


連麥系列之小窗口點擊切換


上篇文章給連麥功能梳理了下思路,不知道小夥伴們有沒有什麼自己的觀點呢?如果有好的想法或者建議可以評論或者私信我哦~

本篇文章來總結一下,在連麥狀態下,小窗口點擊,切換與大窗的視圖,然後再點擊,再切回來。

就類似這樣的


連麥系列之小窗口點擊切換

重碼保護


做的時候其實是有好幾個想法的,既然是總結篇,那麼就把做時候的想法羅列一下吧!

方案1、在點擊小窗時,大窗和小窗切換流播放

比如現在是主播端,切換時,大窗播放小主播的流,小窗播放大主播的流

如果這樣做,需要處理:

<code>大窗先停止播放原流
大窗播放對方流
小窗停止播放原流
小窗播放對方流
在連麥關閉時,大窗恢復播放原流,小窗停止播放然後退出
/<code>

因為感覺頻繁切換流會影響性能,所以又想了方案2

方案2、頁面最上面一層覆蓋一層和小窗一樣大小的小窗,然後點擊時控制兩個小窗的流、大小、最外層小窗的顯示、隱藏

需要處理的有:

<code>* 佈局最上層添加和小窗一樣大小的小窗,這裡統稱 小窗2,原小窗成為小窗1

第一次點擊時
* 大窗停止播放源流
* 小窗1變大
* 小窗2顯示出來
* 小窗2播放大窗原來的流
第二次點擊時
* 小窗2停止播放流
* 小窗2隱藏
* 大窗播放原流
* 小窗1變小
結束連麥時,小窗1 小窗2消失
/<code>

這樣做,沒有了切換流,但是步驟就稍微繁瑣了,於是想到了方案3

方案3、點擊切換大小窗的層級、大小

需要處理的有

<code>* 大窗變小窗大小,然後層級跑到最外層
* 小窗變大窗大小,然後層級跑到最裡層
* 結束連麥時,小窗消失,大窗恢復
/<code>

方案三即不涉及切換流帶來的反應慢的問題,處理的步驟也是很少的,所以就選擇了方案三。

那麼問題就很好解決了,切換層級方法

view.setZ(100.f);是將view 切換到最外層view.setZ(0.f);是將view切換到最裡層

使用這個方法,再結合 layoutparams 就完成上圖的效果了


有遇到這種情況的小夥伴快來試試看吧,如果有更好的思路還望評論下,感謝~~


分享到:


相關文章: