1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          glsurfaceview播放視頻(ExoPlayer使用GLSurfaceView播放視頻)

          來源:互聯網轉載 時間:2024-05-04 14:34:00

          要在GLSurfaceView上使用ExoPlayer來播放視頻,您需要完成以下步驟:

          在您的項目中添加ExoPlayer庫的依賴項。您可以在build.gradle文件中的dependencies塊中添加以下代碼行:
          implementation 'com.google.android.exoplayer:exoplayer-core:2.X.X'implementation 'com.google.android.exoplayer:exoplayer-ui:2.X.X'

          其中,2.X.X應替換為您要使用的ExoPlayer版本。

          在您的布局文件中添加GLSurfaceView控件,例如:
          <LinearLayout    android:layout_width="match_parent"    android:layout_height="match_parent">    <android.opengl.GLSurfaceView        android:id="@+id/glsurfaceview"        android:layout_width="match_parent"        android:layout_height="match_parent" /></LinearLayout>
          在您的Activity或Fragment中,初始化ExoPlayer和GLSurfaceView,設置Renderer和SurfaceView。以下是一個示例代碼:
          import android.opengl.GLSurfaceView;import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;import com.google.android.exoplayer2.DefaultLoadControl;import com.google.android.exoplayer2.DefaultRenderersFactory;import com.google.android.exoplayer2.ExoPlayerFactory;import com.google.android.exoplayer2.SimpleExoPlayer;import com.google.android.exoplayer2.source.ExtractorMediaSource;import com.google.android.exoplayer2.source.MediaSource;import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;import com.google.android.exoplayer2.ui.PlayerView;import com.google.android.exoplayer2.upstream.DataSource;import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;import com.google.android.exoplayer2.util.Util;public class MainActivity extends AppCompatActivity {    private GLSurfaceView glSurfaceView;    private SimpleExoPlayer player;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        glSurfaceView = findViewById(R.id.glsurfaceview);        glSurfaceView.setEGLContextClientVersion(2);        player = ExoPlayerFactory.newSimpleInstance(                new DefaultRenderersFactory(this),                new DefaultTrackSelector(),                new DefaultLoadControl());        PlayerView playerView = new PlayerView(this);        playerView.setPlayer(player);        glSurfaceView.setRenderer(new VideoRenderer(player));        glSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);    }    @Override    protected void onResume() {        super.onResume();        glSurfaceView.onResume();    }    @Override    protected void onPause() {        super.onPause();        glSurfaceView.onPause();    }    private static class VideoRenderer implements GLSurfaceView.Renderer {        private SimpleExoPlayer player;        public VideoRenderer(SimpleExoPlayer player) {            this.player = player;        }        @Override        public void onSurfaceCreated(GL10 gl10, EGLConfig eglConfig) {            Surface surface = new Surface(/* your SurfaceTexture */);            player.setVideoSurface(surface);        }        @Override        public void onSurfaceChanged(GL10 gl10, int width, int height) {            // Adjust the player's video output to match the GLSurfaceView's dimensions.        }        @Override        public void onDrawFrame(GL10 gl10) {            // Render the video frame using OpenGL.        }    }}

          其中,VideoRenderer類實現了GLSurfaceView的Renderer接口,用于在onSurfaceCreated方法中將SurfaceTexture與ExoPlayer關聯起來。

          在上述示例代碼中,您可以使用ExtractorMediaSource從URL加載視頻。例如:
          MediaSource mediaSource = buildMediaSource(Uri.parse("http://example.com/video.mp4"));player.prepare(mediaSource);player.setPlayWhenReady(true);

          buildMediaSource方法用于構建適當的MediaSource對象,您可以根據需要選擇不同的MediaSource實現。

          確保您已在AndroidManifest.xml文件中包含了必要的權限,例如網絡訪問權限。

          以上是使用GLSurfaceView和ExoPlayer播放視頻的基本步驟。您可以根據需要進行自定義和調整。

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          投資者在參與天通銀交易過程中,需要支付如下費用:點差、手續費、延期費、提貨費、交貨費等。點差:鉑金交易點差前一天結算價0.02% 白銀固定交易點差8元人民幣/千克。手續費:收取標準不超過成交金額的萬分之八,其中交易所收取萬分之三,其余部分由綜合會員收取。延期費:0.02%。提貨費:包括加工費、運輸費等,收取標準為每克14元人民幣;交貨費包括檢驗費、重鑄費等,收取標準為每克6元人民幣。提貨費、交貨費...

          期貨貼水做多還是做空?一般來說期貨貼水對市場期望來說利于做空,期貨貼水是在某個特定的時間地點內,某一個特定商品的期貨價格比現貨價格低,反之叫做期貨升水。但是期貨的貼水或升水,受到很多因素的影響,包括股市分紅、套利力量、市場情緒、市場利率、微觀資金成本等等,并環-定代表著定價有所偏差,因此并不是做多或者做空的唯一判斷標準,還需要結合很多因素來看。期貨貼水行情既可以指商品現貨與交割月份間的價格關系,也...

          【資料圖】最近小編看到大家都在討論廈門哪家理發店最好相關的事情,對此呢小編也是非常的感應興趣,那么這件事究竟是怎么發生的呢?具體又是怎么回事呢?下面就是小編搜索到的關于廈門哪家理發店最好事件的相關信息,我們一起來看一下吧!1、精藝美發:位于廈門市思明南路182號附近定安商業廣場1層;2、恩尚造型:位于廈門市同安區中山路136號;3、超凡造型:位于廈門市思明區何厝頂何176號;4、小雨絲絲:位于廈門...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>