简单播放示例

1.新建播放器:

播放器SDK核心类是JDCloudPlayer,提供的核心view是JDCloudVideoView,JDCloudVideoView可以实现播放器开始、暂停、重播、seek等功能,能满足基础的播放器功能。也可以利用JDCloudPlayer自己实现view。创建代码如下:

复制成功JDCloudVideoView mJDCloudVideoView =new JDCloudVideoView(context);2.设置监听:

播放器准备完毕的监听:

复制成功mJDCloudVideoView.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() {

@Override

public void onPrepared(IMediaPlayer iMediaPlayer) {

//do something

}});视频播放完成的监听:

复制成功mJDCloudVideoView. setOnCompletionListener (new IMediaPlayer. OnCompletionListener () {

@Override

public void onCompletion (IMediaPlayer iMediaPlayer) {

// 播放完成,可释放播放器

if(mJDCloudVideoView!= null) {

mJDCloudVideoView.pause ();

mJDCloudVideoView.release(false);

}

}});收集信息的监听:

复制成功mJDCloudVideoView.setOnInfoListener(new IMediaPlayer.OnInfoListener(){

@Override

Public Boolean onInfo(IMediaPlayer iMediaPlayer,int i,int infoIndex){

//i为消息类型,保存在IMediaPlayer类以MEDIA_INFO开头的常量中

return true;

}})出现错误的监听:

复制成功mJDCloudVideoView.setOnErrorListener(new IMediaPlayer.OnErrorListener(){

@Override

public boolean onError(IMediaPlayer iMediaPlayer,int i,int errorIndex) {

//i为消息类型,保存在IMediaPlayer类以MEDIA_ERROR开头的常量中

return true;

}});3.设置播放地址播放视频,支持RMVB、AVI、MKV、MP4、MOV等格式。

复制成功mJDCloudVideoView.setVideoPath(videoUrl);

mJDCloudVideoView.start();//首次播放

jdcVideoView.switchDataSource(videoURL);//调用start启动播放后,切换视频。4.暂停播放,暂停后可以用start()再次播放。

复制成功if(mJDCloudVideoView!=null) mJDCloudVideoView.pause();5.结束播放,和暂停播放不同,会清除播放地址。

复制成功mJDCloudVideoView.stopPlayback();6.播放完成后,可以释放播放器

复制成功if (mJDCloudVideoView!= null) {

mJDCloudVideoView.release(false);

mJDCloudVideoView = null;

}## 更多接口

播放器的各种控制

播放器的控制接口,基本控制功能有播放、暂停、恢复播放、Seek。其中Seek功能对直播失效。

复制成功//暂停播放

mJDCloudVideoView.pause();

//启动播放、暂停后恢复播放

mJDCloudVideoView.start();

//跳转到指定时间点的视频画面,单位为秒

mJDCloudVideoView.seekTo(position);* **缩放模式**

视频画面的显示模式,如裁剪、填充、全屏等效果;通过setScalingMode来设置播放模式,播放前或者播放中设置均生效。

三种播放模式如下:

IRenderView.SCALING_MODE_ASPECT_FIT

填充:在保证视频画面全部展示的提前下,将视频的中心对准mJDCloudVideoView的中心,等比例放大或缩小视频画面,直到视频的宽高完全匹配mJDCloudVideoView 的宽高为止。

和ImageView的scaleType属性的值为fitCenter效果相同。

IRenderView.SCALING_MODE_ASPECT_FILL

剪裁:以填满整个mJDCloudVideoView为目的,将视频的中心对准mJDCloudVideoView的中心,等比例放大原图,直到填满mJDCloudVideoView为止(指的是mJDCloudVideoView的宽和高都要填满),视频超过mJDCloudVideoView的部分作裁剪处理。

和ImageView的scaleType属性的值为centerCrop效果相同。

IRenderView.SCALING_MODE_MATCH_PARENT

全屏:视频画面宽高完全匹配mJDCloudVideoView设置的区域,画面可能被拉伸

倍速播放

在播放器创建之后,可设置倍速,播放中也可以设置,直播的视频不可设置,倍速播放支持0.5~2倍的设置。

复制成功mJDCloudVideoView.setSpeed(speedLevel);* **获取播放进度和时间**

播放器中显示的当前时间和播放的总时长,在准备播放成功后,可以获取。

示例代码:

复制成功//获取当前播放时间,单位:毫秒

int mPosition=mJDCloudVideoView.getCurrentPosition()

//总时长,单位:毫秒

int mDuration=mJDCloudVideoView.getDuration()* **镜像播放**

镜像功能可使播放的画面左右镜像翻转,示例代码:

复制成功mJDCloudVideoView.setMirror(true);* **后台播放**

开启后台播放后,当用户点击home按钮后,播放器进入后台继续读取数据并播放音频。当APP回到前台后,音频继续播放。

复制成功mJDCloudVideoView.enterBackground();* **纯音频播放**

设置播放过程中有无画面输出,设置该属性后,底层不再进行视频的渲染动作。播放前后均可设置。

复制成功mJDCloudVideoView.setVisibility(View.INVISIBLE)* **播放中截图**

获取播放视频当前时间点的图片:

复制成功Bitmap bmp=mJDCloudVideoView.takeSnapShot()* **截gif小视频**

JDCloudVideoTool工具类封装了截取gif动图所需的方法,

getSnapShotSequence():获取指定视频指定时间段内的图片序列,

recordVideo():录制视频的指定时间段内的视频,

recordGif():根据视频和指定时间段,生成gif动图,

注:指定时间段需要在视频总时长内。

这三个方法均是静态方法,详细参数参考sdk说明文档。

边播边缓存功能

边播边下缓存功能是在视频被成功播放后,文件会缓存到本地,再次播放视频时会直接使用本地缓存文件,不再请求网络

新建缓存:

JDCloudVideoCache cache=new JDCloudVideoCache(cachePath);

整个APP周期,缓存只能新建一次,可以采用单例模式。

JDCloudVideoCache cache=DemoApplication.getCache(mContext);

播放视频时,在cache中获取播放地址:

String proxyUrl = cache.getProxyUrl(videoURL);

mJDCloudVideoView.setVideoPath(proxyUrl);

日志

播放过程中状态发生改变,获取不同播放状态和播放信息作为日志。设置IMediaPlayer.OnInfoListener监听可以获取各种类型的消息,设置方式如下:

mJDCloudVideoView.setOnInfoListener();

android 播放器sdk,Android端SDK的使用相关推荐

  1. android 播放器音量,Android应用实例之调节播放器音量——AudioManager的应用

    实现的功能:调节播放器音量. 实现的思路:1)用ProgressBar显示当前音量大小: 2)在Button单击事件中改变音量大小: 3)关键是用什么控制音量,百度了一下可以用AudioManager ...

  2. android播放器实例,android音乐播放器实例

    郑州app开发android音乐播放器实例.布局代码是一个imagebutton和seekbar. 下面是java代码 MainActivity.java package cn.xhhkj.music ...

  3. android播放器1004,Android音频开发MediaPlayer(-38,0)(-1004)错误解决

    最近在开发音视频,我用的都是mediaplayer,有时会出现error(-38, 0),MediaPlayer: stop called in state 0 或者是其它错误,应该是在还未就绪的情况 ...

  4. android播放器1004,Android媒体播放器在从外部网站播放流时出错(1,-1004)

    我试图从我的 Android应用程序中的网站播放音频文件,但它遇到媒体播放器错误(1,-1004). 当我在Windows媒体播放器或vlc播放器中使用它时,流链接工作正常.为什么Android媒体播 ...

  5. android 播放器评测,Android全能播放器 酷我听听新版本评测

    前言:"酷我听听"是"酷我音乐盒"的手机版本,由于在线搜索功能突出,并具有丰富的播放功能,应用自推出以来广泛受到了Android用户的青睐.目前"酷我 ...

  6. android 播放器封装,Android视频播放最全总结:MediaPlayer+TextureView封装一个完美实现全屏、小窗视频播放器,附项目源码...

    原标题:Android视频播放最全总结:MediaPlayer+TextureView封装一个完美实现全屏.小窗视频播放器,附项目源码 作者:xiaoyanger 来源:http://www.jian ...

  7. android 播放器架构,Android播放器框架设计系列-1

    视频播放器框架已经非常成熟了,但是由于项目需求各种各样,第三方库使用起来需要大量修改定制,并且还会出现各种问题,因此把之前项目中开发的模块提取出来进行完善扩展,写了一套自研的播放框架,并且引入Jetp ...

  8. 开博尔android播放器,双核ANDROID网络播放器-开博尔C9-开箱 + 评测

    本帖最后由 ycchen226 于 2013-3-29 16:14 编辑 C9界面交互: C9的最大亮点 我认为是这个界面UI的设计 nEO_IMG_DSC00516.jpg (98.07 KB, 下 ...

  9. Android播放器自定义,android surfaceView+mediaPlayer 自定义视频播放器

    你可以参考我的写法,注意点就是你自定义的MyCallBack()里面要回调,也就是我写的SurfaceCallBack()里面的SurfaceCreated()函数要实现你写的setOnPrepare ...

  10. ijk基于exo_github上十二款最著名的Android播放器开源项目

    1.ijkplayer 介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Android/iOS 视频播放器.实现了跨平台功能,API 易于集成:编译配置可裁剪,方便控制 ...

最新文章

  1. 简单的说一说java线程中的死锁和嵌套管程锁死问题?
  2. DFS 之 poj 2386 Lake Counting
  3. android 手动签名apk,记录手动签名APK的过程
  4. 仿苹果手机闹钟_原来iPhone闹钟这么牛!用6年苹果今天才发现,以前不懂一直想删...
  5. Linux高级管理之ACL(访问控制列表)实战应用
  6. MySQL:Innodb表 Data free 的计算概要
  7. Modern Python Cookbook》(Python经典实例)笔记 2.3 编写长行代码
  8. 怎么使用et代理换ip软件切换电脑手机的上网ip_使用教程
  9. 2021最新 上海互联网公司排名
  10. matlab形位公差,基于最小区域法的形位公差精确算法.PDF
  11. IDEA中maven仓库依赖报错:Cannot resolve com.example:product-server:0.0.1-SNAPSHOT
  12. vue m3u8格式 实现监控直播
  13. CH340国产USB转异步串口芯片替代CP2102对比CH340C与CH340G
  14. 高速数据采集存储系统分类
  15. 阿里云创建AccessKey 和 Access Key Secert
  16. 时钟(CLOCK)置换算法
  17. 微信小程序输出Object,Object
  18. 利用单片机最小系统外接DS12C887 在LCD1602上显示实时时钟
  19. Apollo + Springboot 整合(多环境版)
  20. 圆锥误差补偿多子样算法

热门文章

  1. python爬取天气预报_分分钟学会用Python爬取天气预报
  2. 【CCF-CSP201712-4】行车路线
  3. Python pip自动管理脚本
  4. 行秩列秩一定相等吗_从不同角度看行秩与列秩
  5. php html5手机端多张图片上传,PHP+jQuery+html5实现图片选取裁剪上传(兼容手机上传)...
  6. 五分钟学Java:可变参数究竟是怎么一回事?
  7. php使用gd库将文字转换成图片
  8. 职场上,不知道这些,活该工资比人低一倍
  9. 怎样拍摄全景照片?全景图片拍摄流程
  10. 程序人生文章汇总(持续更新,方便查阅)