<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      FFmpeg開發筆記(五十六)使用Media3的Exoplayer播放網絡視頻

      ?Android早期的MediaPlayer控件對于網絡視頻的兼容性很差,所以后來單獨推出了Exoplayer庫增強支持網絡視頻,在《Android Studio開發實戰:從零基礎到App上線(第3版)》一書第14章的“14.3.3  新型播放器ExoPlayer”就詳細介紹了Exoplayer庫的詳細用法。

      現在Android官方再次升級Exoplayer,并將其納入了Jetpack的Media3第三代媒體庫,作為音視頻相關操作的統一處理引擎。升級后的Exoplayer就成為Media3的統一媒體播放引擎,提供了音頻和視頻播放的應用級組件,意欲在音視頻渲染方向上一統江湖。
      根據Android官網的介紹,ExoPlayer還擺脫設備和操作系統碎片化問題,讓App代碼以一致的方式運行于整個Android生態系統中。因為Media3是個很新很新的Jetpack庫,所以它對開發環境要求比較高,需滿足下列條件才能正常引入Media3。
      1、開發工具要選用Android Studio Jellyfish(小水母版本)或更高版本。
      2、Gradle版本不低于8.6。
      3、App模塊的build.gradle里面compileSdk和targetSdk要升級到34或者更高版本。
      根據上述條件準備好了開發環境,再按照以下描述引入Media3的ExoPlayer庫,詳細步驟說明如下。

      一、修改模塊的build.gradle

      在build.gradle的dependencies節點內部補充下面的導包語句,把ExoPlayer用到的相關庫都加進來。

      implementation "androidx.media3:media3-exoplayer:1.4.0"
      implementation "androidx.media3:media3-exoplayer-hls:1.4.0"
      implementation "androidx.media3:media3-exoplayer-rtsp:1.4.0"
      implementation "androidx.media3:media3-ui:1.4.0"
      implementation "androidx.media3:media3-common:1.4.0"
      implementation "androidx.media3:media3-session:1.4.0"
      implementation "androidx.media3:media3-datasource:1.4.0"
      implementation "androidx.media3:media3-datasource-rtmp:1.4.0"

      二、編輯播放界面的布局文件

      打開播放界面的XML布局文件,給根布局添加如下的屬性配置:

      xmlns:app="http://schemas.android.com/apk/res-auto"

      接著在布局內部添加來自ExoPlayer庫的PlayerView控件節點,舉例如下:

      <!-- use_controller是否顯示控制欄,show_timeout控制欄的消失間隔,show_buffering是否顯示緩沖區,resize_mode大小調整模式 -->
      <androidx.media3.ui.PlayerView
          android:id="@+id/pv_content"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          app:show_buffering="always"
          app:show_timeout="5000"
          app:use_controller="true"
          app:resize_mode="fit"/>

      三、活動頁面代碼增加ExoPlayer的處理代碼

      首先補充下面一行代碼聲明PlayerView對象:

      private ExoPlayer mPlayer; // 聲明一個新型播放器對象

      接著在onCreate方法里面補充以下代碼,獲取PlayerView對象,并對其設置ExoPlayer的播放器對象:

          PlayerView pv_content = findViewById(R.id.pv_content);
          mPlayer = new ExoPlayer.Builder(this).build();
          pv_content.setPlayer(mPlayer); // 設置播放器視圖的播放器對象

      然后添加下面的播放方法,開始播放指定鏈接的網絡視頻。

      // 播放視頻
      private void playVideo(Uri uri) {
          DataSource.Factory factory = new DefaultDataSource.Factory(this);
          // 創建指定地址的媒體對象
          MediaItem videoItem = new MediaItem.Builder().setUri(uri).build();
          // 基于工廠對象和媒體對象創建媒體來源
          MediaSource videoSource;
          if (uri.getPath().endsWith("m3u8")) { // hls鏈接
              videoSource = new HlsMediaSource.Factory(factory)
                      .createMediaSource(videoItem);
          } else if (uri.getPath().startsWith("rtsp")) { // rtsp鏈接
              videoSource = new RtspMediaSource.Factory()
                      .createMediaSource(videoItem);
          } else if (uri.getPath().startsWith("rtmp")) { // rtmp鏈接
              videoSource = new ProgressiveMediaSource.Factory(new RtmpDataSource.Factory())
                      .createMediaSource(videoItem);
          } else { // 其他鏈接(http開頭或https開頭的普通視頻鏈接)
              videoSource = new ProgressiveMediaSource.Factory(factory)
                      .createMediaSource(videoItem);
          }
          mPlayer.setMediaSource(videoSource); // 設置播放器的媒體來源
          mPlayer.prepare(); // 播放器準備就緒
          mPlayer.play(); // 播放器開始播放
      }

      從上述的播放代碼可知,這里用到了ExoPlayer的四種播放形式,分別為:播放HLS鏈接、播放RTMP鏈接、播放RTSP鏈接、播放普通網絡視頻。

      四、給AndroidManifest.xml補充互聯網訪問權限

      打開AndroidManifest.xml,添加下面的互聯網權限配置:

      <uses-permission android:name="android.permission.INTERNET" />

      最后編譯運行App,在真機上看到的播放器效果如下圖所示。

      可見成功把Media3的ExoPlayer庫跑了起來,并且正常播放網絡視頻。

      更多詳細的FFmpeg開發知識參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書。

       

      ?
      posted @ 2024-10-13 11:14  aqi00  閱讀(1084)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无遮挡午夜男女xx00动态| AV教师一区高清| 亚洲综合一区二区国产精品| 久青草国产综合视频在线| 被黑人伦流澡到高潮HNP动漫| 国产成人精品一区二三区| 西西人体大胆444WWW| 99精品全国免费观看视频| 精品久久久久久国产| 潮喷失禁大喷水无码| 国产一区在线播放av| 日本道播放一区二区三区| 香蕉EEWW99国产精选免费| 金沙县| 97久久超碰精品视觉盛宴| 无码国产偷倩在线播放| 极品少妇无套内射视频| 97精品尹人久久大香线蕉| www国产亚洲精品久久网站| 亚洲精品久久久久国色天香| 亚洲ⅴa曰本va欧美va视频| 人妻中文字幕一区二区三 | 少妇人妻挤奶水中文视频毛片| 亚洲sm另类一区二区三区| 国产一级特黄性生活大片| 国产精品三级中文字幕| 高潮潮喷奶水飞溅视频无码| 日韩不卡在线观看视频不卡| 亚洲欧美成人aⅴ在线| 人与禽交av在线播放| 国产日韩av二区三区| 国产日韩av二区三区| 国产91久久精品一区二区| 日韩av天堂综合网久久| 亚洲av无码成人精品区一区| 亚洲综合色一区二区三区| 中文无码av一区二区三区| 国产熟女一区二区三区四区| 久久精品国产亚洲av麻豆长发| 国产激情一区二区三区四区| 午夜福利在线观看6080|