android集成EasyPlayer播放器播放实时流媒体视屏


    最近公司项目需要实现一个rtsp实时流媒体视频的播放,在移动端尝试了多个第三方能播放rtsp流实时视频的软件后发现EasyPlayer的实时性较好,画面、声音也都还可以。所以,今天记录一下自己的成果。第一次写。。EasyPlayer是由EasyDarwin开源团队开发和维护的一个流媒体播放器项目,目前有RTSP版和Pro版两个版本,RTSP支持Windows(支持多窗口、包含ActiveX,npAPI Web插件)、Android平台,iOS平台,视频支持H.264,H.265,MPEG4,MJPEG,音频支持G711A,G711U,G726,AAC,支持RTSP over TCP/UDP,支持硬解码,是一套极佳的RTSP流播放组件。

easyPlayer集成步骤

1.先下载官方的dome https://github.com/EasyDarwin/EasyPlayer_Android
2.下载后导入到android studio中(一般会有问题,①是你的gradle版本和他的不一样,②可能他关联的包,库你的环境里没有。。。还有些其他的)
3.可以看到他关联了一个库(rtspclient)
4.在自己的项目中关联rtspclient(主要查看下rtspclient的gradle和自己项目的gradle,这里可能会出现一些问题)

开始代码中的集成了

1。布局文件中添加一个TexTureView控件,并在activity中实现其回调。

<TextureViewandroid:id="@+id/ttV"android:layout_width="match_parent"android:layout_height="match_parent" />mTtv.setOpaque(false);//设置是否透明
mTtv = findViewById(R.id.ttV);
mTtv.setSurfaceTextureListener(MainActivity.this);

在Mainactivity中实现相应的接口

2.在TexTureView的回掉函数onSurfaceTextureAvailable中执行视屏的显示。

public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {startRending(surface);}
if (url.toLowerCase().startsWith("rtmp://")){Toast.makeText(this, "地址出错", Toast.LENGTH_SHORT).show();}else{/**本Key为3个月临时授权License,如需商业使用或者更改applicationId,请邮件至support@easydarwin.org申请此产品的授权。*/mEasyRTSPClient = new EasyRTSPClient(MainActivity.this, "79393674363536526D3430417A41645A7076677A532B6473615768686279356A6232307562586C686348427361574E6864476C76626A4B45567778576F50394C34456468646D6C754A6B4A68596D397A595541794D4445325257467A65555268636E6470626C526C5957316C59584E35", surface, mResultReceiver);boolean autoRecord = PreferenceManager.getDefaultSharedPreferences(MainActivity.this).getBoolean("auto_record", false);File f = new File(MyApplication.sMoviePath);f.mkdirs();try {mEasyRTSPClient.start(url, 1, RTSPClient.EASY_SDK_VIDEO_FRAME_FLAG | RTSPClient.EASY_SDK_AUDIO_FRAME_FLAG, "", "", autoRecord ? new File(f, new SimpleDateFormat("yy-MM-dd HH:mm:ss").format(new Date()) + ".mp4").getPath() : null);}catch (Exception e){e.printStackTrace();Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();return;}
//这里我是把dome里的拷过来了,这里主要是EasyRTSPClient这个类,可以去看看他的源码。看他的构造函数的参数
//2--需要一个授权的id,上面介绍了获取的办法
//3--显示视频的控件
//4--自己可以百度去看看 http://blog.csdn.net/liuyingcan/article/details/50673317

视频停止

public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {stopRending();return true;}//视频停止显示private void stopRending() {if (mEasyRTSPClient != null) {mEasyRTSPClient.stop();mEasyRTSPClient = null;}}

android集成EasyPlayer播放器播放实时流媒体视屏相关推荐

  1. Android、iOS平台RTMP/RTSP播放器实现实时音量调节

    介绍移动端RTMP.RTSP播放器实时音量调节之前,我们之前也写过,为什么windows播放端加这样的接口,windows端播放器在多窗口大屏显示的场景下尤其需要,尽管我们老早就有了实时静音接口,相对 ...

  2. Android多媒体学习五:调用Android自带的播放器播放Audio

    Android有其自带的播放器,我们可以使用隐式Intent来调用它:通过传入一个Action为ACTION_VIEW同时,指定Data为所要播放的Audio的Uri对象,并指定格式信息,则我们就可以 ...

  3. 为potplayer播放器添加实时中文字幕

    为potplayer播放器添加实时中文字幕 大家好,现在的国外视频引进至国内后,也不再去进行中文配音了,而是直接出中文字幕.而那些不是通过正规途径进入中国的电影.视频,只有英文或者韩文或者其他国家的字 ...

  4. Android使用饺子播放器播放服务器端的视频

    在之前的毕设项目中需要做视频播放功能,使用了第三方播放器饺子播放器,感觉非常方便. 网上也有很多关于饺子播放器的用法. 首先在build.gradle中添加依赖 implementation 'cn. ...

  5. 解决Android7.0系统 调用系统相机、系统播放器播放视频、切图兼容问题,报异常android.os.FileUriExposedException

    原文地址:https://blog.csdn.net/msn465780/article/details/59058088?locationNum=8&fps=1 Android7.0以前获取 ...

  6. 使用vlc播放器做rtsp流媒体服务器

    可参考: 使用vlc播放器播放rtsp视频 web网页中使用vlc插件播放相机rtsp流视频 使用vlc进行二次开发做自己的播放器 首先需要安装vlc播放器,下载及安装步骤略 使用vlc播放器做rts ...

  7. Android 11.0 当安装多个播放器时,设置默认播放器播放歌曲

    目录 1.概述 2.当安装多个播放器时,设置默认播放器播放歌曲的核心类

  8. Android 10.0 当安装多个播放器时,设置默认播放器播放歌曲

    目录 1.概述 2.安装多个播放器时,设置默认播放器播放歌曲的核心代码

  9. react项目中使用阿里播放器播放视频,包括切换视频,播放定时跳转(兼容ios和andro),播放完成

    react项目中使用阿里播放器播放视频,包括切换视频,播放定时跳转(兼容ios和andro),播放完成 1.index.html引入阿里播放器的cdn <link rel="style ...

最新文章

  1. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
  2. KindEditor编辑器在ASP.NET中的使用
  3. 一篇文章教你弄懂 SpringMvc中的HandlerInterceptor
  4. golang连接mysql操作示例增删改查(已经测试)
  5. yntaxError: Non-UTF-8 code starting with ‘\xe6‘ in file
  6. 深入浅出python机器学习——K最邻近算法(K-Nearest Neighbors,KNN)
  7. ESL3.6 几种线性回归方法比较学习笔记(含协方差相关系数概念)
  8. 英语——长难句分析及技巧
  9. 对接熊迈SDK工作记录之集成准备
  10. python构建聊天机器人之录制声音保存为音频文件(利用pyaudio进行录音)
  11. 使用webots的MPC的移动机器人轨迹跟踪控制
  12. 苹果手机数据能恢复吗
  13. TypeScript里的工具类型Partial的理解用法
  14. Axure RP9 安装教程
  15. Batch Normalization (BN层)-----批归一化
  16. ios android 占有率,Android全球占有率28.4% 超iOS一倍
  17. cfa三级真题和mock_CFA考试历年官方mock题从哪里找?怎么下载?
  18. RHUB(美国)网络会议 合作伙伴反馈
  19. Firefox Chrome访问6666 556 6667 87等特定端口
  20. Docker快速部署Yearning

热门文章

  1. Python报错UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 1919: illegal mult
  2. C语言冒泡法输出成绩与学号,C语言:根据成绩进行冒泡排序,学号也得跟着动,输出的结果...
  3. [OHIF-Viewers]医疗数字阅片-医学影像-REACT-React.createRef()-Refs and the DOM关于回调 refs 的说明...
  4. 1024程序员节 技术对抗赛 算法与安全答题 标准答案
  5. Java、Scala使用tan和arctan求斜率和倾斜角
  6. 揭秘小程序上线不到一周,每天2万销售额,究竟怎么做到的?
  7. spring cloud 资源服务器授权配置
  8. 怎么用计算机测出来体脂,如何简单测算出自己的体脂率?
  9. 基于Java+Springmvc+vue+element员工信息管理系统详细设计
  10. PTA-天梯赛-7-8 GOGO冲