wlmedia

Introduction: android 音视频播放 SDK,几句代码即可实现音视频播放功能~
More: Author   ReportBugs   
Tags:
FFmpeg-Android音视频-

android 音视频播放 SDK,几句代码即可实现音视频播放功能~

我的视频课程(基础):《(NDK)FFmpeg 打造 Android 万能音频播放器》

我的视频课程(进阶):《(NDK)FFmpeg 打造 Android 视频播放器》

我的视频课程(编码直播推流):《Android 视频编码和直播推流》

我的视频课程(C++ OpenGL):《Android C++ OpenGL》

1、Usage

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")
    }
    ...
}

基本权限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

接入代码(SDK API level:28)

// WlSurfaceView 一般播放使用
<com.ywl5320.wlmedia.widget.WlSurfaceView
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

// WlTextureView 需要做透明、移动、旋转等使用
<com.ywl5320.wlmedia.widget.WlTextureView
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

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();//异步准备

4、其他 API 可看类:WlMedia.java

create By:ywl5320 2019-01-01
Support Me
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea