阿里云视频播放器

阿里云 录播 集成文档:

https://help.aliyun.com/document_detail/51991.html

阿里云 录播 在线测试:

https://player.alicdn.com/aliplayer/setting/setting.html?spm=a2c4g.11186623.2.16.46b46782BOP3P6

阿里云在线 诊断:

http://player.alicdn.com/detection.html?from=h5&vid=&source=https%3A%2F%2Fplayer.alicdn.com%2Faliplayer%2Fsetting%2Fsetting.html%3Fspm%3Da2c4g.11186623.2.16.46b46782BOP3P6%2F%2Fplayer.alicdn.com%2Fvideo%2Faliyunmedia.mp4%26_t%3D1565168961665&uuid=8F46CCE7-2D63-4969-8B15-E5E6FF603AD7&lang=zh-cn

播放功能使用

播放功能的基本流程如下:
1.创建播放器
创建播放器通过AliPlayerFactory类创建播放器。可以创建两种播放器:AliPlayer和AliListPlayer。单个播放功能使用AliPlayer。创建方法如下:

AliPlayer aliyunVodPlayer;
.....
aliyunVodPlayer = AliPlayerFactory.createAliPlayer(getApplicationContext());

如果播放的视频是通过播放器SDK安全下载后的本地文件,那么还需要设置一个加密校验信息(在Application中配置一次即可):

PrivateService.initService(getApplicationContext(), "encryptedApp.dat的本地路径");

2.设置播放器监听事件
播放器提供了多种监听事件,比如:onPrepared,onCompletion等事件。使用方法如下:

aliyunVodPlayer.setOnCompletionListener(new IPlayer.OnCompletionListener() {
    @Override
    public void onCompletion() {
        //播放完成事件
    }
});
aliyunVodPlayer.setOnErrorListener(new IPlayer.OnErrorListener() {
    @Override
    public void onError(ErrorInfo errorInfo) {
        //出错事件
    }
});
aliyunVodPlayer.setOnPreparedListener(new IPlayer.OnPreparedListener() {
    @Override
    public void onPrepared() {
        //准备成功事件
    }
});
aliyunVodPlayer.setOnVideoSizeChangedListener(new IPlayer.OnVideoSizeChangedListener() {
    @Override
    public void onVideoSizeChanged(int width, int height) {
        //视频分辨率变化回调
    }
});
aliyunVodPlayer.setOnRenderingStartListener(new IPlayer.OnRenderingStartListener() {
    @Override
    public void onRenderingStart() {
        //首帧渲染显示事件
    }
});
aliyunVodPlayer.setOnInfoListener(new IPlayer.OnInfoListener() {
    @Override
    public void onInfo(int type, long extra) {
        //其他信息的事件,type包括了:循环播放开始,缓冲位置,当前播放位置,自动播放开始等
    }
});
aliyunVodPlayer.setOnLoadingStatusListener(new IPlayer.OnLoadingStatusListener() {
    @Override
    public void onLoadingBegin() {
        //缓冲开始。
    }
    @Override
    public void onLoadingProgress(int percent, float kbps) {
        //缓冲进度
    }
    @Override
    public void onLoadingEnd() {
        //缓冲结束
    }
});
aliyunVodPlayer.setOnSeekCompleteListener(new IPlayer.OnSeekCompleteListener() {
    @Override
    public void onSeekComplete() {
        //拖动结束
    }
});
aliyunVodPlayer.setOnSubtitleDisplayListener(new IPlayer.OnSubtitleDisplayListener() {
    @Override
    public void onSubtitleShow(long id, String data) {
        //显示字幕
    }
    @Override
    public void onSubtitleHide(long id) {
        //隐藏字幕
    }
});
aliyunVodPlayer.setOnTrackChangedListener(new IPlayer.OnTrackChangedListener() {
    @Override
    public void onChangedSuccess(TrackInfo trackInfo) {
        //切换音视频流或者清晰度成功
    }
    @Override
    public void onChangedFail(TrackInfo trackInfo, ErrorInfo errorInfo) {
        //切换音视频流或者清晰度失败
    }
});
aliyunVodPlayer.setOnStateChangedListener(new IPlayer.OnStateChangedListener() {
    @Override
    public void onStateChanged(int newState) {
        //播放器状态改变事件
    }
});
aliyunVodPlayer.setOnSnapShotListener(new IPlayer.OnSnapShotListener() {
    @Override
    public void onSnapShot(Bitmap bm, int with, int height) {
        //截图事件
    }
});

3. 创建DataSource,准备播放
播放器支持4种播放源:VidSts,VidAuth,VidMps,UrlSource。其中UrlSource是直接的url播放,其余的三种是通过vid进行播放:VidSts,VidAuth点播用户使用;VidMps仅限MPS用户使用。

以VidSts举例,使用方式如下:

//创建VidSts
 VidSts aliyunVidSts = new VidSts();
 aliyunVidSts.setVid(视频vid);
 aliyunVidSts.setAccessKeyId(临时akId);
 aliyunVidSts.setAccessKeySecret(临时akSecret);
 aliyunVidSts.setSecurityToken(安全token);
 aliyunVidSts.setRegion(接入区域);
 //设置播放源
 aliyunVodPlayer.setDataSource(aliyunVidSts);
 ......
 //准备播放
 aliyunVodPlayer.prepare();

4. 设置显示的view
如果源有画面,那么需要设置显示的view到播放器中,用来显示画面。支持SurfaceView和TextureView。

以SurfaceView举例:

surfaceView = (SurfaceView) findViewById(R.id.playview);
surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        aliyunVodPlayer.setDisplay(holder);
    }
    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
        aliyunVodPlayer.redraw();
    }
    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        aliyunVodPlayer.setDisplay(null);
    }
});
  1. 播放控制
    户自行创建播放器的播放控制按钮,在按钮事件里面实现播放器控制接口。基本控制功能有播放、停止、暂停、拖动(seek),其中Seek功能仅对点播有效,直播使用暂停功能时会使画面停留在当前画面,使用恢复后会开始播放当前画面。使用示例如下:
// 开始播放。
aliyunVodPlayer.start();
//暂停播放
aliyunVodPlayer.pause();
//停止播放
aliyunVodPlayer.stop();
// 跳转到。不精准。
aliyunVodPlayer.seekTo(long position);
// 重置
aliyunVodPlayer.reset();
//释放。释放后播放器将不可再被使用。
aliyunVodPlayer.release();

分享个返利程序,可以赚点零花钱。
在这里插入图片描述


版权声明:本文为yanzeyanga原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。