原创 Exoplayer多視頻切換和HLS多碼率手動切換

多視頻切換說白點就是上一集下一集功能,在網上找了一下發現幾篇都是要改源代碼的,這麼強大的播放器怎麼會沒有這個功能呢,就換了關鍵字找,最後找到別人說可以用ConcatenatingMediaSource實現,然後又找具體代碼,最後在GitH

原创 android 用opengles實現幾個簡單的ps疊加方法和簡單的濾鏡再轉成bitmap

最近修改濾鏡,發現這篇文章終於把photoshop圖層疊加模式講清楚了 ,就想着實現這篇文章的效果,就做了個小demo 2019/09/04更新 增加了把各種濾鏡轉bitmap的方法 至於效果對不對我也不知道,因爲我沒裝ps就算裝了我也

原创 opengl 關於png帶黑邊的原因

網上有很多關於png帶黑邊的解決方法就是混合模式改成glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);可是沒有人說爲啥會出現這個問題,然後我就被坑死了。 公司裏有專門做圖片的部門,然後他們用的軟件是不

原创 使用Android Studio+CMakeLists編譯assimp

先說環境win10,android studio3.5.3,ndk-r18b,assimp-4.1.0 爲啥是assimp-4.1.0,因爲最開始去網上找例子的時候是4.1.0版本,就沒改了,我想5.0.1也差不多,只是我只編譯成功了ar

原创 exoplayer播放rtmp流

exoplayer一直在更新,已經和以前的版本不太一樣了,而且我這邊需要播放rtmp流所以就又重新搞了下exoplayer 如果只是引用的話就直接 implementation 'com.google.android.exoplayer

原创 Android使用MediaCodec和OpenGL對多段視頻畫面進行裁剪和拼接

太久沒寫博客了,由於工作,過年還有孩子出生搞得自己焦頭爛額,現在有些時間了就搞點東西。發現瀏覽量突破10萬了,也是挺高興的,雖然很多東西寫的不好,可也看到了自己的進步,也是前年到現在的累積。剛開始我只是學習視頻解碼,渲染和視頻編碼,慢慢的

原创 Android opengles 傳數組給shader着色器

最近在研究高斯模糊,有用到傳數組給着色器這個功能就記錄一下 先貼fragment_shader.glsl代碼 uniform highp float vt[4]; void main() { gl_FragColor = vec

原创 Android opengles 法線貼圖(Normal Mapping)

在褶皺的畫面上做畫面替換,比如一件衣服替換衣服的花紋,再比如旗子上替換圖案,由於不知道用的是什麼相關技術,就從褶皺開始搜起,原來這種技術叫凹凸映射,有兩種實現方法高度紋理(height map)和法線紋理(normal map),原理方面

原创 Android artoolkitx渲染3D模型

artoolkitx的demo只是簡單的渲染了一個方塊,想要複雜的3D模型,最好能有動畫的,最初想用assimp的,可是太複雜了,我自己還搞不懂,就找其他的,發現了個純java的3D引擎rajawali,嗯還是有點複雜要仔細研究,最後找到

原创 使用Android Studio+CMakeLists編譯artoolkitx

公司要預研AR方面的技術,就試試研究artoolkit,網上都是關於編譯artoolkit5的例子,artoolkit5已經很久沒更新了,而artoolkitx是最新版的,可是沒找到關於編譯artoolkitx的方法,就試着自己編譯試試

原创 android.support項目升遷到androidx一些控件不知道怎麼引用如TabLayout

升級了一下android studio,發現新建項目引用的是androidx,就試着把舊項目也升遷到androidx,升遷遇到的坑網上有很多跟着改就好了,主要是一些好用的控件不知道怎麼引用,比如TabLayout,原來是android.s

原创 android 讀取局域網共享文件和播放局域網共享視頻

這個功能也沒啥用,只是稍微研究了一下,最初研究的原因是想播放局域網內共享的視頻,雖然成功了,但是現在只能播放幾M的小視頻 主要參考這篇文章Android 冷知識】利用SMB協議遠程查看電腦文件或者其他存儲設備,這篇文章有些地方寫的不清不楚

原创 android opengl 紋理壓縮 使用帶透明通道的etc1

etc1網上資料很多,而帶透明通道,也就是alpha通道的方法其實就是mask摳圖,先看未處理時的紋理樣子 再來看處理完的樣子 帶透明通道的etc1其實就是高度加了一倍,在下面加上一個mask來進行摳圖,根據這個原理jpg我們也可以自

原创 Android opengles 動態調節高斯模糊

高斯模糊網上例子很多,可是找了一下發現都是沒有動態計算權重矩陣數組的,基本是把權重矩陣寫死了 公式我就不說了,網上很多,只是沒有發現權重矩陣的計算代碼,根據網上的公式的推導代碼 float a = (float) ((1.0f / 2.

原创 android TabLayout自動輪播

TabLayout和單選框一樣只能選中一個,有時候有需求就是自動輪播,自動切換,代碼很簡單 tabLayout.getTabAt(index).select(); 寫個定時自動調用這行代碼,index代表第幾個 這樣就不用那麼麻煩的去寫