【Android视频 之 阿里云视频播放器 一】

说到视频,现在短视频,小视频真是火的不行,抖音,快手,更是很多人手机上必会安装的一款app。那如何开发一款类似于抖音,集视频播放,直播,点播,拍摄,滤镜于一体的app呢,想想那都是相当的复杂。说到这里,就要提阿里云的视频点播了。废话了一通,咱言归正传,哈哈!

【Android视频 之 阿里云视频播放器 二】

1:首先贴出官方的地址:阿里云视频点播

2:sdk的集成步骤,这里就不多说了,官网上有详细的教程:集成文档

不过这里建议大家,可以先下载官方的demo,把demo中的仓库直接导入你的项目中即可!像我这样如图:
在这里插入图片描述

3:如何播放一个简单视频

说明一下:写文章时,我用的最新sdk版本是 4.7.0 哦,这里也只贴出关键代码,更多详细代码在文章末尾有地址链接的。

导入sdk成功后,记得清单文件相应权限不要忘记添加。

(1)初始化视频播放

 private void initAliyunPlayerView() {

        String sdDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test_save_cache";
        File file = new File(sdDir);
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        mAliyunVodPlayerView = findViewById(R.id.aliyunVodPlayerView);
        //保持屏幕敞亮
        mAliyunVodPlayerView.setKeepScreenOn(true);
        PlayParameter.PLAY_PARAM_URL = GlobalConfig.DEFAULT_URL;
        mAliyunVodPlayerView.setPlayingCache(false, sdDir, 60 * 60 /*时长, s */, 300 /*大小,MB*/);
        mAliyunVodPlayerView.setTheme(AliyunVodPlayerView.Theme.Blue);
        mAliyunVodPlayerView.setCirclePlay(false);//是否循环播放
        mAliyunVodPlayerView.setAutoPlay(true);//是否自动播放


    }

(2)播放视频:

 private void playVideo() {
        UrlSource urlSource = new UrlSource();
        urlSource.setUri(PlayParameter.PLAY_PARAM_URL);

        PlayerConfig playerConfig = mAliyunVodPlayerView.getPlayerConfig();
        //默认是5000
        int maxDelayTime = 5000;
        if (PlayParameter.PLAY_PARAM_URL.startsWith("artp")) {
            //如果url的开头是artp,将直播延迟设置成100,
            maxDelayTime = 100;
        }
        playerConfig.mMaxDelayTime = maxDelayTime;
        mAliyunVodPlayerView.setPlayerConfig(playerConfig);
        mAliyunVodPlayerView.setLocalSource(urlSource);
    }

(3)常用的几个播放监听

mAliyunVodPlayerView.setOnPlayStateBtnClickListener(new AliyunVodPlayerView.OnPlayStateBtnClickListener() {
            @Override
            public void onPlayBtnClick(int playerState) {
                if (playerState == IPlayer.started) {
                    Log.i(TAG, "onPlayBtnClick: 暂停");
                } else if (playerState == IPlayer.paused) {
                    Log.i(TAG, "onPlayBtnClick: 播放");
                } else {
                    Log.i(TAG, "onPlayBtnClick: else");
                }
            }
        });

        mAliyunVodPlayerView.setOnCompletionListener(new IPlayer.OnCompletionListener() {
            @Override
            public void onCompletion() {
                Log.i(TAG, "onCompletion:  视频正常播放完成");
            }
        });
        mAliyunVodPlayerView.setOnFirstFrameStartListener(new IPlayer.OnRenderingStartListener() {
            @Override
            public void onRenderingStart() {
                Log.i(TAG, "onRenderingStart: 视频第一帧开始");
            }
        });


        //网络连接监听
        mAliyunVodPlayerView.setNetConnectedListener(new AliyunVodPlayerView.NetConnectedListener() {
            @Override
            public void onReNetConnected(boolean isReconnect) {

            }

            @Override
            public void onNetUnConnected() {

            }
        });

到此如何播放一个视频就说完啦。

【Android视频 之 阿里云视频播放器 二】
ps:试看功能的实现;防淘宝列表滑动,视频小窗口播放的功能实现;

码云源码地址


参考博客:

【Android 视频,音频开源框架】

GSYVideoPlayer
基于ijkplayer的一个封装框架 star目前为止有:11.5k多,并且一直更新维护中…

发布了82 篇原创文章 · 获赞 131 · 访问量 35万+

猜你喜欢

转载自blog.csdn.net/da_caoyuan/article/details/100007646