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

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

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

      FFmpeg開發(fā)筆記(五十二)移動(dòng)端的國(guó)產(chǎn)視頻播放器GSYVideoPlayer

      ?GSYVideoPlayer是一個(gè)國(guó)產(chǎn)的移動(dòng)端視頻播放器,它采用了IJKPlayer、Media3(EXOPlayer)、MediaPlayer、AliPlayer等四種播放器內(nèi)核,支持彈幕、濾鏡、廣告等多項(xiàng)功能。

      GSYVideoPlayer的Github主頁(yè)為https://github.com/CarGuo/GSYVideoPlayer,截止2024年8月18日,該項(xiàng)目的Github星標(biāo)數(shù)為2萬(wàn),副本數(shù)為0.42萬(wàn),這個(gè)成績(jī)算是相當(dāng)不錯(cuò)的了,要知道FFmpeg項(xiàng)目同期在Github的星標(biāo)數(shù)也才4.44萬(wàn)。
      不過在App工程中集成GSYVideoPlayer的話,得注意環(huán)境配置以免導(dǎo)入失敗。具體的導(dǎo)入操作步驟說明如下:

      一、安裝Android Studio Jellyfish

      雖然GSYVideoPlayer主頁(yè)沒有說明要在哪個(gè)版本的Android Studio中導(dǎo)入該庫(kù),但在實(shí)際操作中發(fā)現(xiàn),即使是前兩年推出的Android Studio Dolphin(小海豚版本)都無法正常導(dǎo)入GSYVideoPlayer,就更別說更早的Android Studio了。
      若想正常導(dǎo)入并成功調(diào)用GSYVideoPlayer,還需安裝較新的Android Studio,比如小水母版本的Android Studio Jellyfish。盡管小水母版本的新建App工程采用Kotlin編碼,不過GSYVideoPlayer支持Java編碼,所以仍然可以在Java代碼中調(diào)用GSYVideoPlayer。

      二、修改App工程的配置

      首先打開App項(xiàng)目的settings.gradle,在repositories節(jié)點(diǎn)內(nèi)部補(bǔ)充下面兩行倉(cāng)庫(kù)配置,以便從指定倉(cāng)庫(kù)拉取GSYVideoPlayer庫(kù)。

      maven { url 'https://jitpack.io' }
      maven { url "https://maven.aliyun.com/repository/public" }

      接著打開App模塊的build.gradle,在dependencies節(jié)點(diǎn)內(nèi)部?jī)?nèi)部補(bǔ)充下面配置,表示引入9.0.0版本的GSYVideoPlayer庫(kù)。

      // 支持Java
      implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:v9.0.0-release-jitpack'
      // 支持ExoPlayer模式
      implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-exo2:v9.0.0-release-jitpack'
      // 支持AliPlayer模式
      implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-aliplay:v9.0.0-release-jitpack'
      // 支持arm64指令集
      implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-arm64:v9.0.0-release-jitpack'

      然后打開App模塊的AndroidManifest.xml,補(bǔ)充下面的互聯(lián)網(wǎng)權(quán)限配置:

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

      完成以上三處配置修改之后,才能在App代碼中使用GSYVideoPlayer的播放器控件。

      三、在App代碼中使用播放器

      GSYVideoPlayer提供了三種播放器控件,分別是NormalGSYVideoPlayer、GSYADVideoPlayer和ListGSYVideoPlayer,它們?cè)贏pp代碼中的用法分別說明如下:

      1、普通播放器NormalGSYVideoPlayer

      NormalGSYVideoPlayer用來播放單個(gè)視頻文件,在XML文件中放置該控件的代碼如下所示:

      <com.shuyu.gsyvideoplayer.video.NormalGSYVideoPlayer
          android:id="@+id/video_player"
          android:layout_width="match_parent"
          android:layout_height="300dp" />

      2、廣告播放器GSYADVideoPlayer

      GSYADVideoPlayer用來播放視頻文件的片頭廣告,注意該控件要和NormalGSYVideoPlayer搭配使用。在XML文件中放置該控件的代碼如下所示:

      <RelativeLayout
          android:layout_width="match_parent"
          android:layout_height="match_parent">
          <com.shuyu.gsyvideoplayer.video.NormalGSYVideoPlayer
              android:id="@+id/detail_player"
              android:layout_width="match_parent"
              android:layout_height="300dp" />
          <com.shuyu.gsyvideoplayer.video.GSYADVideoPlayer
              android:id="@+id/ad_player"
              android:layout_width="match_parent"
              android:layout_height="300dp"
              android:visibility="gone" />
      </RelativeLayout>

      3、列表播放器ListGSYVideoPlayer

      ListGSYVideoPlayer用來播放在時(shí)間上按順序排成列表的若干視頻文件,在XML文件中放置該控件的代碼如下所示:

      <com.shuyu.gsyvideoplayer.video.ListGSYVideoPlayer
          android:id="@+id/detail_player"
          android:layout_width="match_parent"
          android:layout_height="300dp" />

      在XML文件中放置上述三個(gè)播放器的任意一種控件之后,再回到Java代碼執(zhí)行視頻播放操作。以NormalGSYVideoPlayer為例,通過Java播放單個(gè)視頻文件的代碼例子如下:

      private static String URL_MP4 = "https://video.zohi.tv/fs/transcode/20240520/8cc/355193-1716184798-transv.mp4";
      private NormalGSYVideoPlayer video_player;
      private OrientationUtils orientationUtils;
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_simple_player);
          video_player = findViewById(R.id.video_player);
          // 設(shè)置旋轉(zhuǎn)
          orientationUtils = new OrientationUtils(this, video_player);
          // 設(shè)置全屏按鍵功能,這是使用的是選擇屏幕,而不是全屏
          video_player.getFullscreenButton().setOnClickListener(v -> {
              // 不需要屏幕旋轉(zhuǎn),還需要設(shè)置 setNeedOrientationUtils(false)
              orientationUtils.resolveByClick();
          });
          // 不需要屏幕旋轉(zhuǎn)
          video_player.setNeedOrientationUtils(false);
          findViewById(R.id.btn_play_mp4).setOnClickListener(v -> {
              video_player.setUp(URL_MP4, true, "數(shù)字中國(guó)峰會(huì)迎賓曲");
          });
      }

      然后運(yùn)行測(cè)試App,觀察NormalGSYVideoPlayer播放網(wǎng)絡(luò)視頻的效果如下圖所示:

      因?yàn)镹ormalGSYVideoPlayer的播放內(nèi)核基于IJKPlayer、EXOPlayer和AliPlayer,默認(rèn)就支持HLS、RTMP等直播鏈接,所以無需改動(dòng)代碼,只要把視頻地址換成以m3u8結(jié)尾的HLS鏈接,或者以rtmp開頭的RTMP鏈接,即可讓NormalGSYVideoPlayer播放直播內(nèi)容。利用NormalGSYVideoPlayer播放直播視頻的效果圖如下所示:

      更多詳細(xì)的FFmpeg開發(fā)知識(shí)參見《FFmpeg開發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到短視頻上線》一書。

       


      ?
      posted @ 2024-09-08 11:36  aqi00  閱讀(1235)  評(píng)論(1)    收藏  舉報(bào)
      主站蜘蛛池模板: 精品国偷自产在线视频99| 国产成人精品亚洲午夜| 污网站在线观看视频| 免费现黄频在线观看国产 | 免费观看全黄做爰大片| 国产精品一区二区三区污| 国产亚洲精品第一综合另类| 国产不卡一区二区精品| 亚洲国产免费图区在线视频| 久久精品国产www456c0m| 国产成人无码www免费视频播放| 久久婷婷大香萑太香蕉av人 | 国产玖玖视频| 国产免费高清69式视频在线观看| 成人特黄特色毛片免费看 | 99久久精品国产一区二区暴力| 亚洲欧美人成网站在线观看看| 亚洲精品自拍在线视频| 亚洲阿v天堂网2021| 日韩国产成人精品视频| 午夜福利偷拍国语对白| 韩国无码AV片在线观看网站 | 国内精品久久人妻无码妲| 视频一区二区三区四区久久 | 亚洲夂夂婷婷色拍ww47| 偷拍精品一区二区三区| 精品欧洲av无码一区二区| 乱色欧美激惰| 欧美老少配性行为| 思思久99久女女精品| 人妻有码av中文字幕久久琪| 国产乱码精品一区二区三上| 69精品丰满人妻无码视频a片| 亚洲理论在线A中文字幕| 国产精品精品一区二区三| 麻豆a级片| 一区二区三区av天堂| 国产一区二区三区色老头| 久久天天躁夜夜躁狠狠ds005| 免费又大粗又爽又黄少妇毛片| 亚洲精品久久麻豆蜜桃|