android阿里云基础视频播放器记录:

1、阿里云视频播放器sdk地址:https://help.aliyun.com/document_detail/61910.html?spm=a2c4g.11186623.6.810.4ed6533cEJ431r

2、创建demo集成sdk https://help.aliyun.com/document_detail/61910.html?spm=a2c4g.11186623.6.810.4ed6533cEJ431r  按照流程集成arr文件

android恶心人的地方就是:  明明很清楚的流程,就是会出不来,出问题,擦
    
    项目根目录下:gradle.build添加
        allprojects {
            repositories {
                flatDir {
                    dirs 'libs'
                }
                google()
                jcenter()
            }
        }
        
    app目录下:gradle.build添加
    
            implementation(name: 'AlivcPlayer-3.4.8', ext: 'aar')
            implementation(name: 'AlivcReporter-1.2', ext: 'aar')
            implementation(name: 'AliyunVodPlayer-3.4.8', ext: 'aar')
            
            这步听我的直接copy别自己手敲了,会报错,恶心至极
            
    集成这三个arr要求minSdkVersion 16以上
    
    
3、集成步骤(可以按照官方文档或demo来做,这里供初次接触者参考)

说明:android端集成阿里云arr资源库 (基础播放)

    1》、创建项目, app->libs下
    
        AlivcPlayer-3.4.8.arr
        AlivcReporter-1.2.arr
    
    2》、app下的build.gradle添加依赖
    
        //阿里云播放器
        implementation(name: 'AlivcPlayer-3.4.8', ext: 'aar')
        implementation(name: 'AlivcReporter-1.2', ext: 'aar')
        
    3》、在项目根目录下build.gradle设置
    
        allprojects {
            repositories {
                flatDir {
                    dirs 'libs'
                }
                google()
                jcenter()
            }
        }

然后sync同步依赖
        
    4》、代码初始化,application初始化阿里云sdk player
    
         //初始化播放器
        AliVcMediaPlayer.init(getApplicationContext());
        
    5》、manifest中添加权限
    
            <!--阿里播放器权限-->
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
            <uses-permission android:name="android.permission.INTERNET" />
            <uses-permission android:name="android.permission.READ_PHONE_STATE" />
            <uses-permission android:name="android.permission.WAKE_LOCK"/>
            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
            <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
        
    6》、activity使用播放:
    
          mPlayer = new AliVcMediaPlayer(AliVcMediaPlayerActivity.this,surfaceView);这一句代码不能直接放在oncreat()里面。
          必须首先获取到surfaceView 的holder :surfaceView.getHolder(),然后添加一个回调,在回调方法surfaceCreated()中创建AliVcMediaPlayer实例。
            
         (1)、xml中创建surfaceview,实例化surfaceview,并创建    SurfaceHolder
                mSurfaceView= (SurfaceView)findViewById(R.id.mSurfaceView);
                SurfaceHolder surfaceHolder = mSurfaceView.getHolder();
                surfaceHolder.addCallback( new SurfaceCallback());
                
         (2)、preparePlay
                /**
                 *  播放视频准备
                 */
                private void preparePlay(){
                    mPlayer = new AliVcMediaPlayer(this, mSurfaceView);
                    //开启缓存
                    mPlayer.setPlayingCache(true,createCacheFiles(),60,300);
                    //填充效果
                    mPlayer.setVideoScalingMode(MediaPlayer.VideoScalingMode.VIDEO_SCALING_MODE_SCALE_TO_FIT);
                    //开启循环播放
                    mPlayer.setCirclePlay(true);
                    //准备完成
                    mPlayer.setPreparedListener(new MediaPlayer.MediaPlayerPreparedListener() {
                        @Override
                        public void onPrepared() {
                            Log.i("mPlayer","setPreparedListener");
                            mPlayer.play();
                        }
                    });
                    /*** 其他监听和参数自己去设置  ****/
                }        
         (3)、SurfaceCallback类的实现
                /**
                 * SurfaceCallback
                 */
                private class SurfaceCallback implements SurfaceHolder.Callback{
                    @Override
                    public void surfaceCreated(SurfaceHolder holder) {
                        //准备播放
                        preparePlay();
                    }
                    @Override
                    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}

@Override
                    public void surfaceDestroyed(SurfaceHolder holder) {
                        if (null != mPlayer) {
                            mPlayer = null;
                        }
                    }
                }

(4)、开始播放视频
         
                /**
                 * 播放视频
                 * @param videoUrl
                 */
                private void startPlay(String videoUrl) {
                    if(mPlayer==null){
                        preparePlay();
                    }
                    //设置缺省编码类型:0表示硬解;1表示软解;
                    //如果缺省为硬解,在使用硬解时如果解码失败,会尝试使用软解
                    //如果缺省为软解,则一直使用软解,软解较为耗电,建议移动设备尽量使用硬解
                    mPlayer.setDefaultDecoder(0);
                    //如果从历史点开始播放
                    //mPlayer.seekTo(position);
                    //准备开始播放
                    mPlayer.prepareAndPlay(videoUrl);
                }

(5)、停止播放视频
     
                /**
                 * 停止播放  (其他的,暂停等功能自己可以定义方法实现)
                 */
                private void stopPlay() {
                    if (mPlayer.isPlaying()){
                        Toast.makeText(MainActivity.this,"停止",Toast.LENGTH_LONG).show();
                        mPlayer.stop();
                        mPlayer.destroy();
                        mPlayer =null;
                    }else{
                        Toast.makeText(MainActivity.this,"从来没放过",Toast.LENGTH_LONG).show();
                    }
                }
                
4、播放实现参考:

https://download.csdn.net/download/u010326875/10832938  基础播放功能的实现 (整理demo)

https://download.csdn.net/download/hycfire/9884170  集成jar+so的demo实现

android阿里云基础视频播放器相关推荐

  1. 阿里云SDK播放器集成

    android阿里云基础视频播放器记录: 1.阿里云视频播放器sdk地址:https://help.aliyun.com/document_detail/61910.html?spm=a2c4g.11 ...

  2. android使用阿里云推流播放器记录

    android使用阿里云推流播放器记录: 在这里扯一句,如何删除csdn自己上传的资源:(参考:https://blog.csdn.net/qq_38122230/article/details/79 ...

  3. 阿里云Aliplayer视频播放(web播放器)

    1.官方文档https://help.aliyun.com/document_detail/125548.html?spm=a2c4g.11186623.6.1089.3f4b317c0dCNvV 2 ...

  4. Android进阶:自定义视频播放器开发(下)

    上一篇文章我们主要讲了视频播放器开发之前需要准备的一个知识,TextureView,用于对图像流的处理.这篇文章开始构建一个基础的视频播放器. 一.准备工作 在之前的文章已经说过了,播放器也是一个vi ...

  5. Android课程设计之视频播放器

    CSDN下载:https://download.csdn.net/download/eseszb/10463442 移动互联网开发   课程设计报告 学生姓名:学 号: 专业:计算机科学与技术 班级: ...

  6. 阿里云基础认证(ACA - Alibaba Cloud Certification Associate)

    阿里云助理工程师认证(ACA - Alibaba Cloud Certification Associate)是面向使用阿里云基础产品的专业技术认证,主要涉及阿里云的计算.存储.网络.安全类的核心产品 ...

  7. React+阿里云Aliplayer播放器实现rtmp直播(推流时间差,重启播放器,计时观看)

    需求 前端框架为React 用阿里云播放器Aliplayer播放直播 使用的rtmp协议 资料 阿里云播放器 Web端文档:https://help.aliyun.com/document_detai ...

  8. Android Video Player. 安卓视频播放器,封装 MediaPlayer、ExoPlayer、IjkPlayer。模仿抖音,悬浮播放,广告播放,列表播放,弹幕

    DKVideoPlayer 项目地址:dueeeke/DKVideoPlayer 简介: Android Video Player. 安卓视频播放器,封装 MediaPlayer.ExoPlayer. ...

  9. Android进阶:自定义视频播放器开发(上)

    随着快手,抖音,西瓜视频等视频APP的崛起,视频播放已经成为主流,此时作为Android研发的你,想要提高自己的能力还不知道怎么开发视频播放器怎么行?所以今天就带着大家一起开发一个简易播放器:Smal ...

最新文章

  1. 图片管理之获取图片列表数据
  2. debstack 安装 openstack
  3. 提高github下载速度
  4. [导入]ASP.NET AJAX 说明文档-客户端引用-全局命名空间-JavaScript 基础类型扩展-Array 类型扩展-contains 函数...
  5. 【绝对有用】Syntax error on token “throws“, @ expected after this token
  6. Spring+ Spring cloud + SSO单点登录应用认证
  7. activemq和mysql_activeMQ 填坑记
  8. 【渝粤题库】陕西师范大学210014幼儿园科学教育作业(高起专)
  9. leetcode 45. 跳跃游戏 II 思考分析
  10. Machine Learning - XII. Support Vector Machines支持向量机(Week 7)
  11. WinDbg、Symbol Packages、SRVINSTW、DebugView下载地址
  12. 部分相机和相机镜头的参数
  13. 笔记本处理器排名_上半年最受欢迎处理器TOP10榜单:AMD终进榜,9代酷睿无缘前10...
  14. Windows系统下的百度云不限速
  15. 【企业架构】现代企业架构方法——第 1 章
  16. MATLAB R2019b利用Application Compiler打包文件无法识别runtime问题(亲测可行)
  17. python读取文件夹下txt文件,并转化成excel
  18. 计算机培训黑板报,电子板报的教学计划
  19. android中textview记录日志,Android中TextView属性全纪录
  20. 嵌入式Linux学习笔记(1-3)——linux系统常用工具

热门文章

  1. 【Matlab】Matlab如何将脚本m文件打包成App
  2. matlab中使用VMD(变分模态分解)
  3. python ,ffprobe获取音频文件头信息,文件格式等
  4. 洛谷OJ:P1379 八数码难题(双向搜索)
  5. 【ACO TSP】基于matlab GUI蚁群算法求解旅行商问题【含Matlab源码 1032期】
  6. Charles功能介绍和使用教程
  7. matlab vb调用,VB程序中实现调用MATLAB的方法
  8. linux下创建db2数据库
  9. 使用PIXIWell_RF 射频模块 虚拟GPS windows系统
  10. openpose计算人体骨骼角度