wlmedia
Android 音视频播放SDK,几句代码即可实现音视频播放功能~
功能丰富,支持手机、电视盒子、手表等智能设备。
一、功能特点
二、实例展示
三、集成使用
3.1
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.wanliyang1990:wlmedia:2.0.0'
}
3.2 常用权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
3.2 配置NDK编译平台
defaultConfig {
...
ndk {
abiFilter("arm64-v8a")
abiFilter("armeabi-v7a")
abiFilter("x86")
abiFilter("x86_64")
}
...
}
3.3 API
3.3.1 视频Surface
// WlSurfaceView 一般播放使用
<com.ywl5320.wlmedia.surface.WlSurfaceView
android:layout_width="match_parent"
android:layout_height="match_parent" />
// WlTextureView 需要做透明、移动、旋转等使用
<com.ywl5320.wlmedia.surface.WlTextureView
android:layout_width="match_parent"
android:layout_height="match_parent" />
3.3.2 基础调用代码(更多功能见Demo)
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右侧上下滑动事件
}
});
四、博客详解
五、讨论群(1085618246)
六、混淆
-keep class com.ywl5320.wlmedia.* {*;}
七、参考资料
八、核心三方库
Create By:ywl5320 2019-12-16