整個流程就是,創建一個GLSurfaceView用來裝載視頻,GLSurfaceView中設置renderer,自己自定義renderer,主要繪制流程都在這個,里面,主要有三個方法onSurfaceCreated(),onSurfaceChanged(),onDrawFrame()。
glsurfaceview播放視頻代碼
下面一段代碼是初始化著色器代碼,至于著色器里面的代碼需要了解著色器語言
StringvertexShader=ShaderUtils.readRawTextFile(context,R.raw.vetext_sharder);
StringfragmentShader=ShaderUtils.readRawTextFile(context,R.raw.fragment_sharder);
programId=ShaderUtils.createProgram(vertexShader,fragmentShader);
aPositionLocation=GLES20.glGetAttribLocation(programId,"aPosition");
uMatrixLocation=GLES20.glGetUniformLocation(programId,"uMatrix");
uSTMMatrixHandle=GLES20.glGetUniformLocation(programId,"uSTMatrix");
uTextureSamplerLocation=GLES20.glGetUniformLocation(programId,"sTexture");
aTextureCoordLocation=GLES20.glGetAttribLocation(programId,"aTexCoord");
這一串代碼是綁定紋理,設置mediaplayer每一幀作為紋理關聯起來
glsurfaceview播放視頻格式
textureId=textures[0];
GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,textureId);
ShaderUtils.checkGlError("glBindTexturemTextureID");
/*GLES11Ext.GL_TEXTURE_EXTERNAL_OES的用處?
之前提到視頻解碼的輸出格式是YUV的(YUV420p,應該是),那么這個擴展紋理的作用就是實現YUV格式到RGB的自動轉化,
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
隨著社會越來越發達,大家都選擇在網絡上汲取相關知識內容,比如為什么我電腦12306登不上去,為了更好的解答大家的問題,小編也是翻閱整理了相應內容,下面就一起來看一下吧!【資料圖】12306出現不能正常瀏覽的原因通常是以下兩點:1、證書未安裝或者安裝不正確;2、證書相關的服務出現異常。上述兩種問題的解決方法為:1、登錄12306網站首頁;2、在最新動態那欄下方點擊安裝根證書;3、下載完成后解壓到電腦...
小投資生財之道怎么做才好?1、小投資和理財要量力而行投資時一定要根據自己的實際情況制定自己的理財計劃,分清個人或家庭的生活費、存款、日常消費、理財錢,將理財錢分成不同的比例進行投資。同時,投資的時候一定要根據自己現有的資金進行投資,量力而行。2、選擇最適合的理財方式做小投資理財不要隨波逐流,每個人的財產狀況、風險承受能力、收益預期都不一樣,對投資理財產品的選擇也不一樣。所以,選擇自己了解的適合自己...
黃金24k和999純金的區別在哪里?24K就是純金,通常將含金量達到99.96%以上的黃金稱之為24K金或者是純金, 24K金和999 黃金的區別是:1、含金量不同: 24K金為純金,含金量在99.96%以上,而999黃金是含金量達到99.9%的黃金;2、價格不同: 999黃金的價格要比24K金高;3、999黃金柔韌性和延展性比24K金更差,因為24K金在制造中加了其它金屬。周大生的黃金純不純?周...