返回顶部
首页 > 资讯 > 精选 >怎么在Android中使用GSYVideoPlayer播放视频器
  • 546
分享到

怎么在Android中使用GSYVideoPlayer播放视频器

2023-06-14 09:06:50 546人浏览 安东尼
摘要

怎么在Android中使用GSYVideoPlayer播放视频器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。GSYVideoPlayerGSYVideoPla

怎么在Android中使用GSYVideoPlayer播放视频器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

GSYVideoPlayer

GSYVideoPlayer官方地址

GSYVideoPlayer 一个基于IJkPlayer的播放器
支持调节声音亮度
边播边缓存 使用了AndroidVideoCache;ExoPlayer使用SimpleCache
支持多种协议h363\4\5、https、concat、rtsp、hls、rtmp、crypto、mpeg等等
简单滤镜(马赛克、黑白、色彩过滤、高斯、模糊、模糊等等20多种)、动画、(水印、画面多重播放等)
视频第一帧、视频帧截图功能,视频生成gif功能。
调整显示比例:默认、16:9、4:3、填充;播放时旋转画面角度(0,90,180,270);镜像旋转
IJKPlayer、EXOPlayer、MediaPlayer切换、自定义内核
小窗口、多窗体下(包括桌面)的小窗口播放。
片头广告、跳过广告支持、中间插入广告功能。
暂停前后台切换不黑屏;调整不同清晰度的支持;无缝切换支持;定/解锁全屏点击功能;进度条小窗口预览
可自定义渲染层、自定义管理层、自定义播放层(控制层)、自定义缓存层

使用依赖

JCenter 引入方法(推荐)
你可以选择下面三种的其中一种,在module下的build.gradle添加。

A、直接引入

//完整版引入implementation 'com.shuyu:GSYVideoPlayer:8.1.2'

B、添加java和你想要的so支持:

implementation 'com.shuyu:gsyVideoPlayer-java:8.1.2'//是否需要ExoPlayer模式implementation 'com.shuyu:GSYVideoPlayer-exo2:8.1.2'//根据你的需求ijk模式的soimplementation 'com.shuyu:gsyVideoPlayer-armv5:8.1.2'implementation 'com.shuyu:gsyVideoPlayer-armv7a:8.1.2'implementation 'com.shuyu:gsyVideoPlayer-arm64:8.1.2'implementation 'com.shuyu:gsyVideoPlayer-x64:8.1.2'implementation 'com.shuyu:gsyVideoPlayer-x86:8.1.2'

C、支持其他格式协议的(mpeg,rtsp, concat、crypto协议)

implementation 'com.shuyu:gsyVideoPlayer-java:8.1.2'//是否需要ExoPlayer模式implementation 'com.shuyu:GSYVideoPlayer-exo2:8.1.2'//更多ijk的编码支持implementation 'com.shuyu:gsyVideoPlayer-ex_so:8.1.2'

代码中的全局切换支持

//EXOPlayer内核,支持格式更多PlayerFactory.setPlayManager(Exo2PlayerManager.class);//系统内核模式PlayerFactory.setPlayManager(SystemPlayerManager.class);//ijk内核,默认模式PlayerFactory.setPlayManager(IjkPlayerManager.class);//exo缓存模式,支持m3u8,只支持exoCacheFactory.setCacheManager(ExoPlayerCacheManager.class);//代理缓存模式,支持所有模式,不支持m3u8等,默认CacheFactory.setCacheManager(ProxyCacheManager.class);//切换渲染模式GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL);//默认显示比例GSYVideoType.SCREEN_TYPE_DEFAULT = 0;//16:9GSYVideoType.SCREEN_TYPE_16_9 = 1;//4:3GSYVideoType.SCREEN_TYPE_4_3 = 2;//全屏裁减显示,为了显示正常 CoverImageView 建议使用FrameLayout作为父布局GSYVideoType.SCREEN_TYPE_FULL = 4;//全屏拉伸显示,使用这个属性时,surface_container建议使用FrameLayoutGSYVideoType.SCREEN_MATCH_FULL = -4;public static void setScreenScaleRatio(float screenScaleRatio)//切换绘制模式GSYVideoType.setRenderType(GSYVideoType.SUFRACE);GSYVideoType.setRenderType(GSYVideoType.GLSURFACE);GSYVideoType.setRenderType(GSYVideoType.TEXTURE);//ijk关闭logIjkPlayerManager.setLogLevel(IjkMediaPlayer.IJK_LOG_SILENT);//exoplayer自定义MediaSourceExoSourceManager.setExoMediaSourceInterceptListener(new ExoMediaSourceInterceptListener() {  @Override  public MediaSource getMediaSource(String dataSource, boolean preview, boolean cacheEnable, boolean isLooping, File cacheDir) {    //可自定义MediaSource    return null;  }});

自定义一个播放器

public class LiveVideo extends StandardGSYVideoPlayer {  public LiveDataFullscreenButtonClick liveDataClick;//点击全屏按钮回调    public void onResume() {    onVideoResume();  }    public void onPause() {    onVideoPause();  }    public void setOnFullscreenButtonClick(LiveDataFullscreenButtonClick liveDataClick) {    this.liveDataClick = liveDataClick;  }    @Override  public int getLayoutId() {    return R.layout.test;  }  public LiveVideo(Context context, Boolean fullFlag) {    super(context, fullFlag);    init();  }  public LiveVideo(Context context) {    super(context);    init();  }  public LiveVideo(Context context, AttributeSet attrs) {    super(context, attrs);    init();  }    private void init() {    //EXOPlayer内核,支持格式更多//    PlayerFactory.setPlayManager(Exo2PlayerManager.class);    //代理缓存模式,支持所有模式,不支持m3u8等,默认//    CacheFactory.setCacheManager(ProxyCacheManager.class);    //系统内核模式//    PlayerFactory.setPlayManager(SystemPlayerManager.class);    //ijk内核,默认模式    PlayerFactory.setPlayManager(IjkPlayerManager.class);    settingsVideo();  }    public void settingsVideo() {    GSYVideoType.enableMediaCodec();//使能硬解码,播放前设置    Debuger.enable();//打开GSY的Log    //隐藏一些UI    setViewShowState(mBottomContainer, VISIBLE);    setViewShowState(mTopContainer, VISIBLE);    setViewShowState(mLockScreen, GoNE);    setViewShowState(mLoadingProgressBar, GONE);    setViewShowState(mTopContainer, GONE);    setViewShowState(mThumbImageView, GONE);    setViewShowState(mBottomProgressBar, GONE);    //显示一些UI  进度 时间 当前时间 全屏 返回 加载Loading 暂停开始    setViewShowState(mStartButton, VISIBLE);    setViewShowState(mLoadingProgressBar, VISIBLE);    setViewShowState(mFullscreenButton, VISIBLE);    setViewShowState(mBackButton, GONE);    setViewShowState(mProgressBar, VISIBLE);    setViewShowState(mCurrentTimeTextView, VISIBLE);    setViewShowState(mTotalTimeTextView, VISIBLE);    setEnlargeImageRes(R.drawable.full);    setShrinkImageRes(R.drawable.full);  }  //拦截事件  @Override  public boolean dispatchTouchEvent(MotionEvent ev) {    mFullscreenButton.setOnClickListener(new OnClickListener() {      @Override      public void onClick(View view) {        liveDataClick.onClick();      }    });    return super.dispatchTouchEvent(ev);  }    @Override  protected void touchDoubleUp() {//    super.touchDoubleUp();  }  public interface LiveDataFullscreenButtonClick {    void onClick();  }}
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="Http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:background="@android:color/black">  <RelativeLayout    android:id="@+id/surface_container"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center">  </RelativeLayout>  <RelativeLayout    android:id="@+id/thumb"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:layout_alignParentBottom="true"    android:layout_alignParentEnd="true"    android:layout_alignParentLeft="true"    android:layout_alignParentRight="true"    android:layout_alignParentStart="true"    android:layout_alignParentTop="true"    android:background="#000000"    android:scaleType="fitCenter" />  <LinearLayout    android:id="@+id/layout_bottom"    android:layout_width="match_parent"    android:layout_height="40dp"    android:layout_alignParentBottom="true"    android:background="#99000000"    android:gravity="center_vertical"    android:orientation="horizontal"    android:visibility="invisible">    <TextView      android:id="@+id/current"      android:textColor="@color/white"            android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_marginLeft="16dp"      android:text="00:00"    />        <SeekBar      android:id="@+id/progress"      android:layout_width="0dp"      android:layout_height="wrap_content"      android:layout_gravity="center_vertical"      android:layout_weight="1.0"      android:background="@null"      android:padding="10dp"      android:max="100"      android:maxHeight="4dp"      android:minHeight="4dp"      android:paddingBottom="8dp"      android:paddingTop="8dp"      android:progressDrawable="@drawable/video_progress_bg"      android:thumb="@drawable/video_seek_thumb" />    <TextView      android:id="@+id/total"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_marginRight="16dp"      android:text="00:00"      android:textColor="@color/white"      />  </LinearLayout>  <LinearLayout    android:id="@+id/layout_top"    android:layout_width="match_parent"    android:layout_height="48dp"    android:background="@drawable/video_title_bg"    android:gravity="center_vertical">    <ImageView      android:id="@+id/back"      android:layout_width="48dp"      android:layout_height="48dp"      android:paddingLeft="10dp"      android:scaleType="centerInside"      android:src="@drawable/video_back" />      <View        android:layout_weight="1"        android:layout_width="0dp"        android:layout_height="match_parent"/>    <ImageView      android:id="@+id/fullscreen"            android:src="@drawable/full" />  </LinearLayout>  <ProgressBar    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/loading"    android:layout_centerInParent="true"    />  <ImageView    android:visibility="gone"    android:layout_width="50dp"    android:layout_height="50dp"    android:layout_centerInParent="true"    android:padding="5dp"    android:id="@+id/start"   /></RelativeLayout>

api

video.setUp("url", false, "");//设置播放路径video.startPlayLogic();//开始播放

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 怎么在Android中使用GSYVideoPlayer播放视频器

本文链接: https://lsjlt.com/news/269598.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在Android中使用GSYVideoPlayer播放视频器
    怎么在Android中使用GSYVideoPlayer播放视频器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。GSYVideoPlayerGSYVideoPla...
    99+
    2023-06-14
  • Android GSYVideoPlayer视频播放器功能的实现
    GSYVideoPlayer GSYVideoPlayer官方地址 GSYVideoPlayer 一个基于IJkPlayer的播放器 支持调节声音亮度 边播边缓存 使用了Andro...
    99+
    2024-04-02
  • Android多功能视频播放器GSYVideoPlayer开发流程
    目录前言引入依赖开发设置具体实现前言 今天,和大家分享一个开源的多功能视频播放器 — GSYVideoPlayer,支持弹幕,滤镜、水印、gif截图,片头广告,声音、亮度...
    99+
    2022-11-13
    Android GSYVideoPlayer Android视频播放器
  • android使用videoview播放视频
    代码如下:public class Activity01 extends Activity{  @Override public void on...
    99+
    2022-06-06
    videoview Android
  • android webvie指定视频播放器播放网站视频
    过滤掉其他的播放器,使用我自己的播放器来做 代码如下:        wv.setWebViewClie...
    99+
    2022-06-06
    Android
  • Android 视频播放器dkplayer
    gihub地址: https://github.com/Doikki/DKVideoPlayer GitHub - Doikki/DKVideoPlayer: Android Video Player. 安卓视频播放器,封装MediaPla...
    99+
    2023-10-02
    android 音视频
  • Android中怎么利用MediaPlay播放音频和视频
    Android中怎么利用MediaPlay播放音频和视频,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实现MediaPlay的基本步骤是创建MediaPlay对象调用setDa...
    99+
    2023-06-04
  • 怎么在HTML5中播放 RTSP 视频
    今天就跟大家聊聊有关怎么在HTML5中播放 RTSP 视频,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。目前已有 RTSP 播放方案的对比既然是做直播,就需要延迟较低。当摄像头掉线时...
    99+
    2023-06-09
  • Android怎么自定义视频播放器
    要自定义Android视频播放器,可以按照以下步骤进行: 创建一个新的Android项目,并在布局文件中添加一个SurfaceVi...
    99+
    2023-10-26
    Android
  • Android 使用Vitamio打造自己的万能播放器(5)——在线播放(播放优酷视频)
     前言   为了保证每周一篇的进度,又由于Vitamio新版本没有发布, 决定推迟本地播放的一些功能(截图、视频时间、尺寸等),跳过直接写在线播放部分的章节。从Vit...
    99+
    2022-06-06
    万能 vitamio Android
  • Python中怎么使用PyQT制作视频播放器
    本篇内容主要讲解“Python中怎么使用PyQT制作视频播放器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中怎么使用PyQT制作视频播放器”吧!视频播放器先把已经完成的代码放出来。...
    99+
    2023-06-02
  • Android中怎么使用SoundPool播放音频
    这期内容当中小编将会给大家带来有关Android中怎么使用SoundPool播放音频,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用SoundPool播放音效SoundPool类可用于管理和播放应用中的...
    99+
    2023-06-04
  • html5怎么播放视频
    这篇文章主要讲解了“html5怎么播放视频”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html5怎么播放视频”吧! html5...
    99+
    2024-04-02
  • python怎么播放视频
    方法有:1、使用OpenCV库播放视频;2、使用pygame库播放视频;3、使用moviepy库播放视频等。Python作为一种高级编程语言,有很多库和工具可以用来播放视频。在本文中,我将介绍一些常用的库和工具,以及它们的基本用法和示例代码...
    99+
    2023-11-15
    python
  • Android怎么实现音乐视频播放
    这篇文章给大家分享的是有关Android怎么实现音乐视频播放的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。步骤新建一个安卓项目,再加一个assets包在 assets中加入一段音频在界面中加入音乐的“开始”按钮和...
    99+
    2023-06-15
  • android怎么实现视频播放功能
    Android可以使用MediaPlayer或ExoPlayer等库来实现视频播放功能。以下是一种常见的实现方法:1. 添加权限和依...
    99+
    2023-08-23
    android
  • 视频播放服务器购买怎么使用
    购买视频播放服务器后,您需要进行以下操作:1. 连接到服务器:通过远程桌面连接或SSH连接到服务器。2. 安装视频播放软件:根据您的...
    99+
    2023-06-11
    视频播放服务器 服务器
  • 如何在html中播放视频
    本篇文章为大家展示了如何在html中播放视频,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。html播放视频在 HTML 中播放视频并不容易!您需要谙熟大量技巧,以确保您的视频文件在所有浏览器中(In...
    99+
    2023-06-15
  • 利用MAC中的QuickTime视频播放器来播放各种媒体视频
      QuickTime 是MAC中的视频播放器,但是很多新手用户并不清楚QuickTime 的使用技巧,或者是仅仅知道一部分。不过别担心,现在小编就为大家讲解一下如何利用 QuickTime 播放程式来播放各种媒体档案。...
    99+
    2023-06-10
    MAC QuickTime 媒体视频 播放器 媒体 视频
  • Android 使用Vitamio打造自己的万能播放器(7)——在线播放(下载视频)
    前言   本章将实现非常实用的功能——下载在线视频。涉及到多线程、线程更新UI等技术,还需思考产品的设计,如何将新加的功能更好的融入到现有的产品中,并不是简单的加一个界面就行了...
    99+
    2022-06-06
    万能 vitamio Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作