wlmedia播放器集成(4)— 实现视频播放

前言:

GitHub地址:https://github.com/ywl5320/wlmedia

正文

纵观Android平台涉及到的音视频播放SDK,比如:exo、ijk等的api调用都是比较复杂的,很少能几句代码就能实现播放。wlmedia真正实现了几句代码就可实现音视频播放,并且不需要传入Context上下文,绝对的解耦!

  • 效果展示

wlmedia 测试视频

​​​​​​​

  • 布局文件:
<com.ywl5320.wlmedia.widget.WlSurfaceView
    android:id="@+id/wlsurfaceview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
  • 调用代码:
    private WlPlayer wlPlayer;
    private WlSurfaceView wlSurfaceView;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        wlSurfaceView = findViewById(R.id.wlsurfaceview);        
        wlPlayer = new WlPlayer();
        wlSurfaceView.setWlPlayer(wlPlayer);
        wlPlayer.setOnMediaInfoListener(new WlOnMediaInfoListener() {
            @Override
            public void onPrepared() {
                wlPlayer.start();
            }

            @Override
            public void onTimeInfo(double v, double v1) {

            }

            @Override
            public void onComplete(WlCompleteType wlCompleteType, String s) {

            }

            @Override
            public void onLoad(WlLoadStatus wlLoadStatus, int i, long l) {

            }
        });
        wlPlayer.setSource(getFilesDir().getAbsolutePath() + "/testvideos/yfx.mp4");
        wlPlayer.prepare();
        
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        wlPlayer.release();
    }

除去布局文件和回调实现方法,总共不到10句代码即可实现Android音视频播放,剩下的时间可以去学习新知识了,哈哈~

源码地址:传送门

作者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();//异步准备
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ywl5320

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值