{
12 |
13 | public abstract P createPlayer(Context context);
14 | }
15 |
--------------------------------------------------------------------------------
/player/src/main/java/xyz/doikki/videoplayer/player/ProgressManager.java:
--------------------------------------------------------------------------------
1 | package xyz.doikki.videoplayer.player;
2 |
3 | /**
4 | * 播放进度管理器,继承此接口实现自己的进度管理器。
5 | */
6 | public abstract class ProgressManager {
7 |
8 | /**
9 | * 此方法用于实现保存进度的逻辑
10 | * @param url 播放地址
11 | * @param progress 播放进度
12 | */
13 | public abstract void saveProgress(String url, long progress);
14 |
15 | /**
16 | * 此方法用于实现获取保存的进度的逻辑
17 | * @param url 播放地址
18 | * @return 保存的播放进度
19 | */
20 | public abstract long getSavedProgress(String url);
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/player/src/main/java/xyz/doikki/videoplayer/render/IRenderView.java:
--------------------------------------------------------------------------------
1 | package xyz.doikki.videoplayer.render;
2 |
3 | import android.graphics.Bitmap;
4 | import android.view.View;
5 |
6 | import androidx.annotation.NonNull;
7 |
8 | import xyz.doikki.videoplayer.player.AbstractPlayer;
9 |
10 | public interface IRenderView {
11 |
12 | /**
13 | * 关联AbstractPlayer
14 | */
15 | void attachToPlayer(@NonNull AbstractPlayer player);
16 |
17 | /**
18 | * 设置视频宽高
19 | * @param videoWidth 宽
20 | * @param videoHeight 高
21 | */
22 | void setVideoSize(int videoWidth, int videoHeight);
23 |
24 | /**
25 | * 设置视频旋转角度
26 | * @param degree 角度值
27 | */
28 | void setVideoRotation(int degree);
29 |
30 | /**
31 | * 设置screen scale type
32 | * @param scaleType 类型
33 | */
34 | void setScaleType(int scaleType);
35 |
36 | /**
37 | * 获取真实的RenderView
38 | */
39 | View getView();
40 |
41 | /**
42 | * 截图
43 | */
44 | Bitmap doScreenShot();
45 |
46 | /**
47 | * 释放资源
48 | */
49 | void release();
50 |
51 | }
--------------------------------------------------------------------------------
/player/src/main/java/xyz/doikki/videoplayer/render/RenderViewFactory.java:
--------------------------------------------------------------------------------
1 | package xyz.doikki.videoplayer.render;
2 |
3 | import android.content.Context;
4 |
5 | /**
6 | * 此接口用于扩展自己的渲染View。使用方法如下:
7 | * 1.继承IRenderView实现自己的渲染View。
8 | * 2.重写createRenderView返回步骤1的渲染View。
9 | * 可参考{@link TextureRenderView}和{@link TextureRenderViewFactory}的实现。
10 | */
11 | public abstract class RenderViewFactory {
12 |
13 | public abstract IRenderView createRenderView(Context context);
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/player/src/main/java/xyz/doikki/videoplayer/render/TextureRenderViewFactory.java:
--------------------------------------------------------------------------------
1 | package xyz.doikki.videoplayer.render;
2 |
3 | import android.content.Context;
4 |
5 | public class TextureRenderViewFactory extends RenderViewFactory {
6 |
7 | public static TextureRenderViewFactory create() {
8 | return new TextureRenderViewFactory();
9 | }
10 |
11 | @Override
12 | public IRenderView createRenderView(Context context) {
13 | return new TextureRenderView(context);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/player/src/main/java/xyz/doikki/videoplayer/util/L.java:
--------------------------------------------------------------------------------
1 | package xyz.doikki.videoplayer.util;
2 |
3 | import android.util.Log;
4 |
5 | import xyz.doikki.videoplayer.player.VideoViewManager;
6 |
7 | /**
8 | * 日志类
9 | * Created by Doikki on 2017/6/5.
10 | */
11 |
12 | public final class L {
13 |
14 | private L() {
15 | }
16 |
17 | private static final String TAG = "DKPlayer";
18 |
19 | private static boolean isDebug = VideoViewManager.getConfig().mIsEnableLog;
20 |
21 |
22 | public static void d(String msg) {
23 | if (isDebug) {
24 | Log.d(TAG, msg);
25 | }
26 | }
27 |
28 | public static void e(String msg) {
29 | if (isDebug) {
30 | Log.e(TAG, msg);
31 | }
32 | }
33 |
34 | public static void i(String msg) {
35 | if (isDebug) {
36 | Log.i(TAG, msg);
37 | }
38 | }
39 |
40 | public static void w(String msg) {
41 | if (isDebug) {
42 | Log.w(TAG, msg);
43 | }
44 | }
45 |
46 | public static void setDebug(boolean isDebug) {
47 | L.isDebug = isDebug;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/player/src/main/jniLibs/armeabi-v7a/libijkffmpeg.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nbwzlyd/TVBoxOS/73fe8e93ce72338f48c24ed52d9467068c5ca189/player/src/main/jniLibs/armeabi-v7a/libijkffmpeg.so
--------------------------------------------------------------------------------
/player/src/main/jniLibs/armeabi-v7a/libijksdl.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nbwzlyd/TVBoxOS/73fe8e93ce72338f48c24ed52d9467068c5ca189/player/src/main/jniLibs/armeabi-v7a/libijksdl.so
--------------------------------------------------------------------------------
/player/src/main/jniLibs/armeabi-v7a/libplayer.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nbwzlyd/TVBoxOS/73fe8e93ce72338f48c24ed52d9467068c5ca189/player/src/main/jniLibs/armeabi-v7a/libplayer.so
--------------------------------------------------------------------------------
/player/src/main/jniLibs/armeabi-v7a/libxl_stat.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nbwzlyd/TVBoxOS/73fe8e93ce72338f48c24ed52d9467068c5ca189/player/src/main/jniLibs/armeabi-v7a/libxl_stat.so
--------------------------------------------------------------------------------
/player/src/main/jniLibs/armeabi-v7a/libxl_thunder_sdk.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nbwzlyd/TVBoxOS/73fe8e93ce72338f48c24ed52d9467068c5ca189/player/src/main/jniLibs/armeabi-v7a/libxl_thunder_sdk.so
--------------------------------------------------------------------------------
/player/src/main/res/layout/ijk_demo_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |