全部产品
云市场

视频播放

更新时间:2019-07-01 10:30:35

一、秒播解决方案说明

趣视频演示全屏秒播方案,具体方案参见如何用阿里云播放器快速实现全屏秒开

二、如何快速接入秒播方案

步骤1.文件导入

  • 复制AlivcLittleVideo模块com/aliyun/apsara/alivclittlevideo/view/video/videolist包中的代码和相关资源文件

趣视频播放复制文件

  • 复制Aliyunplayer模块

copyPlayer

步骤2.引入包和build.gradle设置

  • 在Android Project 的settings.gradle文件中添加以下引用
  1. include ':Aliyunplayer:AlivcPlayer'
  • build.gradle中添加dependencies配置
  1. dependencies {
  2. implementation fileTree(dir: 'libs', include: ['*.jar'])
  3. //...
  4. // 播放器
  5. api project(':Aliyunplayer:AlivcPlayer')
  6. }

步骤3.如何使用

  1. 通过addView的方式,把AlivcVideoListView实例化对象添加到页面中。示例代码如下:
  1. /**
  2. * 初始化视频列表
  3. */
  4. private void initPlayListView() {
  5. videoListView = new AlivcVideoListView(context);
  6. //创建adapter,需要继承BaseVideoListAdapter
  7. final LittleVideoListAdapter adapter = new LittleVideoListAdapter(context);
  8. //给AlivcVideoListView实例化对象添加adapter
  9. videoListView.setAdapter(adapter);
  10. videoListView.setVisibility(VISIBLE);
  11. //设置sdk播放器实例化对象数量
  12. videoListView.setPlayerCount(3);
  13. //设置下拉、上拉监听进行加载数据
  14. videoListView.setOnRefreshDataListener(new AlivcVideoListView.OnRefreshDataListener() {
  15. @Override
  16. public void onRefresh() {
  17. if (onRefreshDataListener != null) {
  18. onRefreshDataListener.onRefresh();
  19. }
  20. }
  21. @Override
  22. public void onLoadMore() {
  23. if (onRefreshDataListener != null) {
  24. onRefreshDataListener.onLoadMore();
  25. }
  26. }
  27. });
  28. //设置视频缓冲监听
  29. videoListView.setLoadingListener(new IAliyunVodPlayer.OnLoadingListener() {
  30. @Override
  31. public void onLoadStart() {
  32. controlView.updateLoadingView(true);
  33. }
  34. @Override
  35. public void onLoadEnd() {
  36. controlView.updateLoadingView(false);
  37. }
  38. @Override
  39. public void onLoadProgress(int i) {
  40. }
  41. });
  42. //设置鉴权过期监听,刷新鉴权信息
  43. videoListView.setTimeExpiredErrorListener(new IAliyunVodPlayer.OnTimeExpiredErrorListener() {
  44. @Override
  45. public void onTimeExpiredError() {
  46. if (mTimeExpiredErrorListener!=null){
  47. mTimeExpiredErrorListener.onTimeExpiredError();
  48. }
  49. }
  50. });
  51. //添加到布局中
  52. addSubView(videoListView);
  53. }
  1. 设置播放数据
  • 刷新播放数据,示例代码:
  1. /**
  2. * 刷新视频列表数据
  3. *
  4. * @param datas
  5. */
  6. public void refreshVideoList(List<AlivcVideoInfo.Video> datas) {
  7. List<IVideoSourceModel> videoList = new ArrayList<>();
  8. videoList.addAll(datas);
  9. videoListView.refreshData(videoList);
  10. //取消加载loading
  11. controlView.updateLoadingView(false);
  12. }
  • 添加播放数据,示例代码:
  1. /**
  2. * 添加更多视频
  3. *
  4. * @param datas
  5. */
  6. public void addMoreData(List<AlivcVideoInfo.Video> datas) {
  7. List<IVideoSourceModel> videoList = new ArrayList<>();
  8. videoList.addAll(datas);
  9. videoListView.addMoreData(videoList);
  10. //取消加载loading
  11. controlView.updateLoadingView(false);
  12. }