腾讯云视频直播Android端SDK的使用

简单播放示例

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

JDCloudVideoViewmJDCloudVideoView=newJDCloudVideoView(context);2.设置监听:

播放器准备完毕的监听:

mJDCloudVideoView.setOnPreparedListener(newIMediaPlayer.OnPreparedListener(){@OverridepublicvoidonPrepared(IMediaPlayeriMediaPlayer){//dosomething}});视频播放完成的监听:mJDCloudVideoView.setOnCompletionListener(newIMediaPlayer.OnCompletionListener(){@OverridepublicvoidonCompletion(IMediaPlayeriMediaPlayer){//播放完成,可释放播放器if(mJDCloudVideoView!=null){mJDCloudVideoView.pause();mJDCloudVideoView.release(false);}}});收集信息的监听:mJDCloudVideoView.setOnInfoListener(newIMediaPlayer.OnInfoListener(){@OverridePublicBooleanonInfo(IMediaPlayeriMediaPlayer,inti,intinfoIndex){//i为消息类型,保存在IMediaPlayer类以MEDIA_INFO开头的常量中returntrue;}})出现错误的监听:mJDCloudVideoView.setOnErrorListener(newIMediaPlayer.OnErrorListener(){@OverridepublicbooleanonError(IMediaPlayeriMediaPlayer,inti,interrorIndex){//i为消息类型,保存在IMediaPlayer类以MEDIA_ERROR开头的常量中returntrue;}});3.设置播放地址播放视频,支持RMVB、AVI、MKV、MP4、MOV等格式。mJDCloudVideoView.setVideoPath(videoUrl);mJDCloudVideoView.start();//首次播放cVideoView.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);获取播放进度和时间

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

//获取当前播放时间,单位:毫秒intmPosition=mJDCloudVideoView.getCurrentPosition()//总时长,单位:毫秒intmDuration=mJDCloudVideoView.getDuration()镜像播放

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

mJDCloudVideoView.setMirror(true);后台播放

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

mJDCloudVideoView.enterBackground();纯音频播放

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

mJDCloudVideoView.setVisibility(View.INVISIBLE)播放中截图

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

Bitmapbmp=mJDCloudVideoView.takeSnapShot()截gif小视频

JDCloudVideoTool工具类封装了截取gif动图所需的方法,
getSnapShotSequence():获取指定视频指定时间段内的图片序列,
recordVideo():录制视频的指定时间段内的视频,
recordGif():根据视频和指定时间段,生成gif动图,
注:指定时间段需要在视频总时长内。
这三个方法均是静态方法,详细参数参考sdk说明文档。

  • 边播边缓存功能
    边播边下缓存功能是在视频被成功播放后,文件会缓存到本地,再次播放视频时会直接使用本地缓存文件,不再请求网络
    新建缓存:
    JDCloudVideoCachecache=newJDCloudVideoCache(cachePath);
    整个APP周期,缓存只能新建一次,可以采用单例模式。
    JDCloudVideoCachecache=DemoApplication.getCache(mContext);
    播放视频时,在cache中获取播放地址:
    StringproxyUrl=cache.getProxyUrl(videoURL);
    mJDCloudVideoView.setVideoPath(proxyUrl);

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

标签