android流媒体之云视频播放-android视频播放器SDK-视频播放不在犯困

android开发常规笔记—-云视频播放

先上效果图:
视频播放效果图-竖屏版
视频播放效果图-横屏版

使用的sdk:
腾讯云视频点播SDK:http://www.qcloud.com/product/vod.html
点评:个人觉得腾讯云在web端还可以 移动端提供的SDK蛮渣的,不过代码比较少,易读性也比较强,适合新手使用,需要自己花很多的功夫去美化,内部提供的功能不是很丰富,但是公司web+H5都是用的腾讯云 所以我也没办法了,一下技术介绍以腾讯云SDK为主

参照的SDK:
暴风云视频点播SDK:http://www.baofengcloud.com/apisdk/sdk/saas/androidsdk.html
点评:播放界面基本不不要自己去进行什么改动,可以说是拿来就能用,但是内部模块多,可修改性相对腾讯的来说就要低很多,内部提供的方法蛮多的,我研究了一下能满足大部分流媒体播放的需求,

腾讯云点播SDK使用说明:
SDK集成我就不多说了,查看官方文档,我这边只说一下 官方没有写的以及很难发现的点.
布局文件截图
图中的三个布局文件分别对应播放器的视频播放区域 播放器下方进度条那一块 播放器上方分享那一块,自己可以修改这三个布局文件,只播放器的界面达到自己理想中的效果,或者公司需要的效果,

核心代码展示:

List<TitleMenu> videoTitleMenus=new ArrayList<TitleMenu>();
        TitleMenu icon1=new TitleMenu();
        icon1.iconId=R.mipmap.ic_share;
        icon1.action=new PlayerActionInterface(){
            @Override
            public void action() {
                Toast.makeText(payActivity.this,"share icon taped", Toast.LENGTH_SHORT).show();
            }
        };
        videoTitleMenus.add(icon1);
        TitleMenu icon2=new TitleMenu();
        icon2.iconId=R.mipmap.ic_favorite;
        videoTitleMenus.add(icon2);
        TitleMenu icon3=new TitleMenu();
        icon3.iconId=R.mipmap.ic_perm_identity;
        videoTitleMenus.add(icon3);
        player.setMenu(videoTitleMenus);
        List<VideoInfo> videos=new ArrayList<VideoInfo>();
        VideoInfo v1=new VideoInfo();
        v1.description="标清";
        v1.type=VideoInfo.VideoType.MP4;
        v1.url="http://testplayer-10014562.video.myqcloud.com/TFBOYS-%E5%B0%91%E5%B9%B4%E8%AF%B4%5B68mtv.com%5D.mp4.f10.mp4";
        videos.add(v1);
        VideoInfo v2=new VideoInfo();
        v2.description="高清";
        v2.type=VideoInfo.VideoType.MP4;
        v2.url="http://testplayer-10014562.video.myqcloud.com/TFBOYS-%E5%B0%91%E5%B9%B4%E8%AF%B4%5B68mtv.com%5D.mp4.f0.mp4";
        videos.add(v2);
        player.setListener(new PlayerListener(){

            @Override
            public void onError(Exception arg0) {
                arg0.printStackTrace();

            }

            @Override
            public void onStateChanged(int arg0) {
                Log.d("pay", "player states:" + arg0);

            }

        });
        player.play(videos);

就这么简单的几步就能实现视频的播放了(自己可以上传视频到腾讯的云服务器里面去,它会自动给你转码,高清,标清都有了)

作者wanliyang1990,源码wlmedia,1、UsageGradle: implementation 'ywl.ywl5320:wlmedia:1.0.0-beta17'2、实例图片播放视频播放 byte[](如:标准的 h264 h265 等)播放音乐竖屏播放(自动保持宽高比)横屏播放(自动保持宽高比)3、调用方式配置 NDK 编译平台:defaultConfig {     ...     ndk {         abiFilter("arm64-v8a")         abiFilter("armeabi-v7a")         abiFilter("x86")         abiFilter("x86_64")     }     ... }基本权限接入代码(SDK API level:28)// WlSurfaceView 一般播放使用// WlTextureView 需要做透明、移动、旋转等使用WlMedia wlMedia = new WlMedia();// 可支持多实例播放(主要对于音频,视频实际验证效果不佳) wlMedia.setPlayModel(WlPlayModel.PLAYMODEL_AUDIO_VIDEO);//声音视频播放 wlMedia.setCodecType(WlCodecType.CODEC_MEDIACODEC);//优先使用硬解码 wlMedia.setMute(WlMute.MUTE_CENTER);//立体声 wlMedia.setVolume(80);//80%音量 wlMedia.setPlayPitch(1.0f);//正常速度 wlMedia.setPlaySpeed(1.0f);//正常音调 wlMedia.setRtspTimeOut(30);//网络流超时时间 wlMedia.setShowPcmData(true);//回调返回音频 pcm 数据 wlMedia.setSampleRate(WlSampleRate.RATE_44100);//设置音频采样率为指定值(返回的 PCM 就是这个采样率) wlSurfaceView.setWlMedia(wlMedia);//给视频 surface 设置播放器 //异步准备完成后开始播放 wlMedia.setOnPreparedListener(new WlOnPreparedListener() {         @Override         public void onPrepared() {         // wlMedia.setVideoScale(WlScaleType.SCALE_16_9);//设置 16:9 的视频比例             wlMedia.start();//开始播放             double duration = wlMedia.getDuration();//获取时长         }     }); //设置 url 源 wlMedia.setSource("/storage/sdcard1/精灵宝可梦:就决定是你了.720p.国日粤三语.BD 中字[最新电影 www.66ys.tv].mp4"); wlMedia.prepared();//异步准备
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值