# wlmedia
**Repository Path**: alanplus/wlmedia
## Basic Information
- **Project Name**: wlmedia
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2021-11-22
- **Last Updated**: 2021-12-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# wlmedia
#### Android 音视频播放SDK,几句代码即可实现音视频播放功能~
#### 功能丰富,支持手机、电视盒子、手表等智能设备。
#### 注:免费版右下角有水印,若需去水印请联系(email:ywl5320@163.com)付费定制!!
## 一、功能特点
- [x] 兼容androidx和support库
- [x] 基本信息获取(音频:采样率、声道数、时长等,视频:宽、高、fps、时长等)
- [x] 支持file、http、https、rtmp、rtp、rtsp、byte[]等
- [x] 可选音频、视频、音视频播放模式
- [x] 软解硬解设置
- [x] 无缝切换surface(也可自定义surfaceview、textureview)
- [x] 支持多实例播放
- [x] 支持媒体自由切换
- [x] 支持FFmpeg参数设置
- [x] 支持byte[]数据解码
- [x] 支撑音视频变速变调
- [x] 支撑透明视频播放(可实现不错的视觉效果)
- [x] 字幕选择
- [x] 内置循环播放
- [x] 链接超时设置
- [x] 缓存大小设置(按时间、内存和队列设置)
- [x] 音视频加密播放
- [x] 音轨选择
- [x] 音频声道选择
- [x] 音频PCM数据和实时分贝获取
- [x] 音频指定采样率设置
- [x] 视频截屏
- [x] 视频首帧图片或指定时间图片获取
- [x] 视频任意比例设置
- [x] 视频旋转角度设置(0,90,180,270)
- [x] 视频shader自定义视频滤镜(动态设置)
- [x] 视频背景颜色设置(默认黑色)
## 二、实例展示
## 三、集成使用
### 3.1 [](https://jitpack.io/#wanliyang1990/wlmedia)
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.wanliyang1990:wlmedia:2.0.0'
}
### 3.2 常用权限
### 3.2 配置NDK编译平台
defaultConfig {
...
ndk {
abiFilter("arm64-v8a")
abiFilter("armeabi-v7a")
abiFilter("x86")
abiFilter("x86_64")
}
...
}
### 3.3 API
#### 3.3.1 视频Surface
```java
// WlSurfaceView 一般播放使用
// WlTextureView 需要做透明、移动、旋转等使用
```
#### 3.3.2 基础调用代码(更多功能见Demo)
```java
WlSurfaceView wlSurfaceView = findViewById(R.id.wlsurfaceview);
WlMedia wlMedia = new WlMedia();
wlMedia.setSource(url);
wlSurfaceView.setWlMedia(wlMedia);
wlMedia.setOnMediaInfoListener(new WlOnMediaInfoListener() {
@Override
public void onPrepared() {
//异步准备好后开始播放
wlMedia.start();
}
@Override
public void onError(int code, String msg) {
//错误回调,主要用于查看错误信息
}
@Override
public void onComplete(WlComplete type, String msg) {
//播放完成(包含:正常播放完成、超时播放完成、手动触发播放完成等)
}
@Override
public void onTimeInfo(double currentTime, double bufferTime) {
//时间回调,当前时间和缓冲时间
}
@Override
public void onSeekFinish() {
//seek完成后回调,可用于类似iptv这种快进快退
}
@Override
public void onLoopPlay(int loopCount) {
//循环播放此时回调
}
@Override
public void onLoad(boolean load) {
//加载状态回调
}
@Override
public byte[] decryptBuffer(byte[] encryptBuffer) {
return new byte[0];
}
@Override
public byte[] readBuffer(int read_size) {
return new byte[0];
}
@Override
public void onPause(boolean pause) {
//暂停回调
}
});
wlSurfaceView.setOnVideoViewListener(new WlOnVideoViewListener() {
@Override
public void initSuccess() {
//surfaceview初始化完成
wlMedia.prepared();
}
@Override
public void onSurfaceChange(int width, int height) {
//surfaceview大小改变
}
@Override
public void moveX(double value, int move_type) {
//surfaceview横向左右滑动
}
@Override
public void onSingleClick() {
//surfaceview单击事件
}
@Override
public void onDoubleClick() {
//surfaceview双击事件
}
@Override
public void moveLeft(double value, int move_type) {
//surfaceview左侧上下滑动事件
}
@Override
public void moveRight(double value, int move_type) {
//surfaceview右侧上下滑动事件
}
});
```
## 四、博客详解
#### [wlmedia播放器集成(1)— 播放器集成](https://blog.csdn.net/ywl5320/article/details/116899303)
#### [wlmedia播放器集成(2)— 常用自定义view](https://blog.csdn.net/ywl5320/article/details/116901140)
#### [wlmedia播放器集成(3)— 常用api](https://blog.csdn.net/ywl5320/article/details/116945049)
#### [wlmedia播放器集成(4)— 实现视频播放](https://blog.csdn.net/ywl5320/article/details/117000589)
## 五、讨论群(1085618246)

## 六、混淆
-keep class com.ywl5320.wlmedia.* {*;}
## 七、参考资料
#### [我的视频课程(基础):《(NDK)FFmpeg打造Android万能音频播放器》](https://edu.csdn.net/course/detail/6842)
#### [我的视频课程(进阶):《(NDK)FFmpeg打造Android视频播放器》](https://edu.csdn.net/course/detail/8036)
#### [我的视频课程(编码直播推流):《Android视频编码和直播推流》](https://edu.csdn.net/course/detail/8942)
#### [我的视频课程(C++ OpenGL):《Android C++ OpenGL》](https://edu.csdn.net/course/detail/19367)
#### [测试音视频文件地址(提取码:ivbh)](https://pan.baidu.com/s/1Gkm9cgmsvk4dXGPZVyHgZw)
## 八、核心三方库
#### [FFmpeg](http://ffmpeg.org/)
#### [OpenSSL](https://github.com/openssl/openssl)
#### [SoundTouch](http://www.surina.net/soundtouch/)
### Create By:ywl5320 2019-12-16