diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 764cce3..02d09ca 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -12,6 +12,6 @@ - + \ No newline at end of file diff --git a/README.md b/README.md index ff70856..6332c52 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ ## 特性 - [x] 合并(导出)B站缓存(有声音视频,无声音视频,仅音频) +- [x] 番剧、电影合并(导出) - [x] 支持安卓 5.0 ~ 13(理论上) - [x] 视频挂载弹幕播放 - [ ] 更新本地弹幕 @@ -37,12 +38,6 @@ ##### [Github地址](https://github.com/molihuan/BilibiliCacheVideoMerge) ##### [Gitee地址](https://gitee.com/molihuan/BilibiliCacheVideoMergeAndroid) - - -## 下载链接:[跳转](https://github.com/molihuan/BilibiliCacheVideoMerge/tree/master/app/release) - - - ## 演示:(如果github显示不了请转到国内Gitee:[传送门](https://gitee.com/molihuan/BilibiliCacheVideoMergeAndroid)) ### gif演示: @@ -63,54 +58,72 @@ ![hlb6.md.jpg](https://z4a.net/images/2023/01/28/hlb6.md.jpg) -![hlb7.md.jpg](https://z4a.net/images/2023/01/28/hlb7.md.jpg) - +## 软件下载: +Gitee([https://gitee.com/molihuan/BilibiliCacheVideoMergeAndroid/tree/master/app/release](https://gitee.com/molihuan/BilibiliCacheVideoMergeAndroid/tree/master/app/release)) -## 软件协议 +Github(https://github.com/molihuan/BilibiliCacheVideoMerge/tree/master/app/release) -### [查看](./app/src/main/assets/statement.md) +网盘分流:https://wwa.lanzouo.com/b016uhb5g 密码:MLH ## 软件更新 - 优先级 1 (最快):交流群群文件 + - 优先级 2 (次之):网盘链接: -安卓版:https://wwa.lanzouo.com/b016uhb5g -密码:MLH -电脑版:https://wwa.lanzouo.com/b016vmouf -密码:MLH -- 优先级 3 :Github(https://github.com/molihuan/BilibiliCacheVideoMerge/tree/master/app/release) + 安卓版:https://wwa.lanzouo.com/b016uhb5g + 密码:MLH + 电脑版:https://wwa.lanzouo.com/b016vmouf + 密码:MLH + +- 优先级 3 : + + Github(https://github.com/molihuan/BilibiliCacheVideoMerge/tree/master/app/release) + + Gitee([https://gitee.com/molihuan/BilibiliCacheVideoMergeAndroid/tree/master/app/release](https://gitee.com/molihuan/BilibiliCacheVideoMergeAndroid/tree/master/app/release)) + - 优先级 4 :软件内 ## 问题反馈 -请使用模板反馈问题,这样可以帮助开发者快速定位和解决问题,谢谢配合,爱你萌萌哒~^o^~ +##### 请使用模板反馈问题,这样可以帮助开发者快速定位和解决问题,否则一律不处理,谢谢配合,爱你萌萌哒~^o^~ -##### 反馈模板: +#### 反馈模板: -类别:(必填,0、优化建议。1、打开软件就闪退。2、无论什么视频合并都失败或闪退。3、合并个别视频失败或闪退。4、主页空白无法加载哔哩哔哩缓存视频。5、其他问题) +##### 类别:(必填,选择) -设备信息:(必填,软件内左测菜单栏中点击设备信息即可复制,不会泄漏设备特殊信息,无法进入软件按下列大概填写即可: -Android:9 App版本:1.6.9.2beta -机型:HUAWEI/VOG-AL10 -设备id: -2f5e3c3905abc3dc5b757787725d28e43) +0、优化建议。 -描述:(必填,越详细越好) +1、打开软件就闪退。 -怎样触发bug:(选填) +2、无论什么视频合并都失败或闪退。 -视频链接:(选填,如果视频已经下架则把本地缓存文件打包压缩发我邮箱或者直接发群里,具体操作:[https://www.bilibili.com/video/BV1Mx4y1G7by](https://www.bilibili.com/video/BV1Mx4y1G7by)) +3、合并个别视频失败或闪退。 +4、主页空白无法加载哔哩哔哩缓存视频。 +5、无法授权。 -## 软件下载: +6、其他问题。 + +##### 设备信息:(必填) + +软件内左测菜单栏中点击设备信息即可复制,不会泄漏设备特殊信息,仅仅是一个标识,无法进入软件按下列大概填写即可(例如): +Android:9 App版本:1.6.9.2beta +机型:HUAWEI/VOG-AL10 +设备id:2f5e3c3905abc3dc5b757787725d28e43 + +##### 描述:(必填,越详细越好) + +阿巴阿巴阿巴阿巴xxxxxx......... + +##### 怎样触发bug:(选填) -https://github.com/molihuan/BilibiliCacheVideoMerge/tree/master/app/release +阿巴阿巴阿巴阿巴xxxxxx......... -## 更新日志: +##### 视频链接:(选填) -https://github.com/molihuan/BilibiliCacheVideoMerge/blob/master/app/src/main/assets/updataLog.html +如果视频已经下架则把本地缓存文件打包压缩发我邮箱或者直接发群里,具体操作教程:[https://www.bilibili.com/video/BV1Mx4y1G7by](https://www.bilibili.com/video/BV1Mx4y1G7by) ## 特别鸣谢 diff --git a/app/build.gradle b/app/build.gradle index 53498e5..0bca4f2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,8 +40,8 @@ android { applicationId "com.molihua.hlbmerge" minSdk 21 targetSdk 33 - versionCode 57 - versionName "1.6.9.7" + versionCode 58 + versionName "1.6.9.8" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -145,7 +145,7 @@ android { dependencies { implementation fileTree(dir: "libs", includes: ["*.aar", "*.jar"]) //文件选择器(包含权限请求) - implementation 'io.github.molihuan:pathselector:1.1.14' + implementation 'io.github.molihuan:pathselector:1.1.16' // 腾讯的键值对存储mmkv implementation 'com.tencent:mmkv:1.3.1' implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0")) @@ -158,13 +158,14 @@ dependencies { implementation 'com.github.ctiao:ndkbitmap-armv7a:0.9.21' implementation 'com.github.ctiao:ndkbitmap-x86:0.9.21' //XUpdate - implementation 'com.github.xuexiangjys:XUpdate:2.1.2' + implementation 'com.github.xuexiangjys:XUpdate:2.1.4' implementation 'com.github.xuexiangjys.XUpdateAPI:xupdate-easy:1.0.1' //XUI implementation 'com.github.xuexiangjys:XUI:1.2.0' implementation 'androidx.recyclerview:recyclerview:1.2.1' - implementation 'com.github.bumptech.glide:glide:4.12.0' //XUI + implementation 'com.github.bumptech.glide:glide:4.12.0' + //友盟依赖 implementation 'com.umeng.umsdk:common:9.5.4'// (必选) implementation 'com.umeng.umsdk:asms:1.6.3'// 必选 diff --git a/app/release/app-all.apk b/app/release/app-all.apk index efba016..718261d 100644 Binary files a/app/release/app-all.apk and b/app/release/app-all.apk differ diff --git a/app/release/app-arm64-v8a.apk b/app/release/app-arm64-v8a.apk index d75d4d5..d9edb06 100644 Binary files a/app/release/app-arm64-v8a.apk and b/app/release/app-arm64-v8a.apk differ diff --git a/app/release/app-armeabi-v7a.apk b/app/release/app-armeabi-v7a.apk index 2115088..ff59153 100644 Binary files a/app/release/app-armeabi-v7a.apk and b/app/release/app-armeabi-v7a.apk differ diff --git a/app/release/app-x86.apk b/app/release/app-x86.apk index ec16b9c..7238178 100644 Binary files a/app/release/app-x86.apk and b/app/release/app-x86.apk differ diff --git a/app/release/app-x86_64.apk b/app/release/app-x86_64.apk index ae7a3f6..370e46a 100644 Binary files a/app/release/app-x86_64.apk and b/app/release/app-x86_64.apk differ diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 5267b8b..b36f995 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "UNIVERSAL", "filters": [], "attributes": [], - "versionCode": 57, - "versionName": "1.6.9.7", + "versionCode": 58, + "versionName": "1.6.9.8", "outputFile": "app-all.apk" }, { @@ -20,26 +20,26 @@ "filters": [ { "filterType": "ABI", - "value": "armeabi-v7a" + "value": "arm64-v8a" } ], "attributes": [], - "versionCode": 57, - "versionName": "1.6.9.7", - "outputFile": "app-armeabi-v7a.apk" + "versionCode": 58, + "versionName": "1.6.9.8", + "outputFile": "app-arm64-v8a.apk" }, { "type": "ONE_OF_MANY", "filters": [ { "filterType": "ABI", - "value": "x86_64" + "value": "armeabi-v7a" } ], "attributes": [], - "versionCode": 57, - "versionName": "1.6.9.7", - "outputFile": "app-x86_64.apk" + "versionCode": 58, + "versionName": "1.6.9.8", + "outputFile": "app-armeabi-v7a.apk" }, { "type": "ONE_OF_MANY", @@ -50,8 +50,8 @@ } ], "attributes": [], - "versionCode": 57, - "versionName": "1.6.9.7", + "versionCode": 58, + "versionName": "1.6.9.8", "outputFile": "app-x86.apk" }, { @@ -59,13 +59,13 @@ "filters": [ { "filterType": "ABI", - "value": "arm64-v8a" + "value": "x86_64" } ], "attributes": [], - "versionCode": 57, - "versionName": "1.6.9.7", - "outputFile": "app-arm64-v8a.apk" + "versionCode": 58, + "versionName": "1.6.9.8", + "outputFile": "app-x86_64.apk" } ], "elementType": "File" diff --git a/app/src/main/assets/updataLog.html b/app/src/main/assets/updataLog.html index ef1a472..f6fcb03 100644 --- a/app/src/main/assets/updataLog.html +++ b/app/src/main/assets/updataLog.html @@ -18,6 +18,11 @@

因为权限问题,输出路径不能设置为SD卡,缓存文件路径可以设置为SD卡,即SD卡只能读取不能写入

+

1.6.9.8版本(新)

+

更新日期:2023年9月19日

+

----升级权限请求依赖

+

----细节优化

+

1.6.9.7版本(新)

更新日期:2023年9月17日

----修复软件更新问题

diff --git a/app/src/main/java/com/molihua/hlbmerge/activity/impl/AboutActivity.java b/app/src/main/java/com/molihua/hlbmerge/activity/impl/AboutActivity.java index b3a54ea..96ac02f 100644 --- a/app/src/main/java/com/molihua/hlbmerge/activity/impl/AboutActivity.java +++ b/app/src/main/java/com/molihua/hlbmerge/activity/impl/AboutActivity.java @@ -2,6 +2,7 @@ import android.content.Intent; import android.widget.TextView; +import android.widget.Toast; import com.blankj.molihuan.utilcode.util.AppUtils; import com.molihua.hlbmerge.R; @@ -10,8 +11,7 @@ import com.molihua.hlbmerge.fragment.impl.BackTitlebarFragment; import com.molihua.hlbmerge.utils.FragmentTools; import com.molihua.hlbmerge.utils.GeneralTools; -import com.molihua.hlbmerge.utils.LConstants; -import com.molihua.hlbmerge.utils.UpdataTools; +import com.xuexiang.xui.utils.XToastUtils; import com.xuexiang.xui.widget.grouplist.XUIGroupListView; import java.text.SimpleDateFormat; @@ -26,6 +26,7 @@ */ public class AboutActivity extends BaseActivity { + private TextView mDescribeTextView; private TextView mVersionTextView; private XUIGroupListView mAboutGroupListView; private TextView mCopyrightTextView; @@ -37,6 +38,7 @@ public int setContentViewID() { @Override public void getComponents() { + mDescribeTextView = findViewById(R.id.describe); mVersionTextView = findViewById(R.id.version); mAboutGroupListView = findViewById(R.id.about_list); mCopyrightTextView = findViewById(R.id.copyright); @@ -53,19 +55,18 @@ public void initView() { FragmentTools.fragmentReplace( getSupportFragmentManager(), R.id.titlebar_show_area, - new BackTitlebarFragment("关于我们"), + new BackTitlebarFragment("关于"), "about_back_titlebar" ); + mDescribeTextView.setText("将B站缓存视频合并导出为mp4"); mVersionTextView.setText(String.format("版本号:%s", AppUtils.getAppVersionName())); XUIGroupListView.newSection(this) .addItemView(mAboutGroupListView.createItemView("用户协议"), v -> StatementDialog.showStatementDialog(this)) - .addItemView(mAboutGroupListView.createItemView("视频教程"), v -> { - GeneralTools.jumpBrowser(this, LConstants.URL_BILIBILI_HOMEPAGE); - }) - .addItemView(mAboutGroupListView.createItemView("开源地址"), v -> { - GeneralTools.jumpBrowser(this, LConstants.PROJECT_ADDRESS); + + .addItemView(mAboutGroupListView.createItemView("问题反馈"), v -> { + GeneralTools.jumpProjectIssues(this); }) .addItemView(mAboutGroupListView.createItemView("开源许可"), v -> { Intent intent = new Intent(this, HtmlActivity.class); @@ -73,7 +74,16 @@ public void initView() { intent.putExtra("title", "开源许可"); startActivity(intent); }) - .addItemView(mAboutGroupListView.createItemView("检查更新"), v -> UpdataTools.limitClickCheckUpdata(this)) + .addItemView(mAboutGroupListView.createItemView(getString(R.string.UPDATE_LOGS)), v -> { + + Intent intent = new Intent(this, HtmlActivity.class); + intent.putExtra("url", "file:///android_asset/updataLog.html"); + intent.putExtra("title", "更新日志"); + startActivity(intent); + }) + .addItemView(mAboutGroupListView.createItemView(getString(R.string.SPONSOR)), v -> { + XToastUtils.success("可以给项目一个Star吗?非常感谢,你的支持是我唯一的动力。", Toast.LENGTH_LONG); + }) .addTo(mAboutGroupListView); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy", Locale.CHINA); diff --git a/app/src/main/java/com/molihua/hlbmerge/activity/impl/MainActivity.java b/app/src/main/java/com/molihua/hlbmerge/activity/impl/MainActivity.java index 0462823..9329128 100644 --- a/app/src/main/java/com/molihua/hlbmerge/activity/impl/MainActivity.java +++ b/app/src/main/java/com/molihua/hlbmerge/activity/impl/MainActivity.java @@ -161,15 +161,12 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) { intent = new Intent(this, SettingsActivity.class); startActivity(intent); } else if (id == R.id.item_teach) { - GeneralTools.jumpBrowser(this, LConstants.URL_GITEE_HOMEPAGE); + GeneralTools.jumpProjectAddress(this); } else if (id == R.id.item_aboutus) { intent = new Intent(this, AboutActivity.class); startActivity(intent); } else if (id == R.id.item_updatalog) { - intent = new Intent(this, HtmlActivity.class); - intent.putExtra("url", "file:///android_asset/updataLog.html"); - intent.putExtra("title", "更新日志"); - startActivity(intent); + UpdataTools.limitClickCheckUpdata(this); } else if (id == R.id.item_exitapp) { MobclickAgent.onKillProcess(this); finish(); diff --git a/app/src/main/java/com/molihua/hlbmerge/fragment/impl/MainCompleteFragment.java b/app/src/main/java/com/molihua/hlbmerge/fragment/impl/MainCompleteFragment.java index 115ed54..7019119 100644 --- a/app/src/main/java/com/molihua/hlbmerge/fragment/impl/MainCompleteFragment.java +++ b/app/src/main/java/com/molihua/hlbmerge/fragment/impl/MainCompleteFragment.java @@ -92,6 +92,7 @@ private void openFileChoose() { pathSelectFragment = PathSelector.build(this, MConstants.BUILD_FRAGMENT) .setRootPath(ConfigData.getOutputFilePath()) + .setSortType(MConstants.SortRules.SORT_TIME_DESC) .setFrameLayoutId(R.id.main_complete_view) .setShowTitlebarFragment(false) .setAlwaysShowHandleFragment(true) diff --git a/app/src/main/java/com/molihua/hlbmerge/service/impl/PathCacheFileManager.java b/app/src/main/java/com/molihua/hlbmerge/service/impl/PathCacheFileManager.java index 1d1c985..6053df5 100644 --- a/app/src/main/java/com/molihua/hlbmerge/service/impl/PathCacheFileManager.java +++ b/app/src/main/java/com/molihua/hlbmerge/service/impl/PathCacheFileManager.java @@ -108,7 +108,7 @@ public List initChapterFileList(String collectionPath, List initChapterFileList(String collectionPath, List { + GeneralTools.jumpBrowser(context, LConstants.PROJECT_ADDRESS_GITEE); + dialog.dismiss(); + }, + "GITHUB", + (dialog, which) -> { + GeneralTools.jumpBrowser(context, LConstants.PROJECT_ADDRESS_GITHUB); + dialog.dismiss(); + } + ).setCanceledOnTouchOutside(true); + } + + public static void jumpProjectIssues(Context context) { + DialogLoader.getInstance().showConfirmDialog( + context, + "国内选GITEE国外选GITHUB", + "GITEE", + (dialog, which) -> { + GeneralTools.jumpBrowser(context, LConstants.PROJECT_ADDRESS_GITEE + "/issues"); + dialog.dismiss(); + }, + "GITHUB", + (dialog, which) -> { + GeneralTools.jumpBrowser(context, LConstants.PROJECT_ADDRESS_GITHUB + "/issues"); + dialog.dismiss(); + } + ).setCanceledOnTouchOutside(true); + } + } diff --git a/app/src/main/java/com/molihua/hlbmerge/utils/LConstants.java b/app/src/main/java/com/molihua/hlbmerge/utils/LConstants.java index 3f80915..ee37381 100644 --- a/app/src/main/java/com/molihua/hlbmerge/utils/LConstants.java +++ b/app/src/main/java/com/molihua/hlbmerge/utils/LConstants.java @@ -12,7 +12,6 @@ public class LConstants { public static final String SPECIAL_CHARACTERS_REGULAR_RULE = "[\t\r\n`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】\"‘;:”“’。, 、?-]*"; //bilibili主页url public static final String URL_BILIBILI_HOMEPAGE = "https://space.bilibili.com/454222981"; - public static final String URL_GITEE_HOMEPAGE = "https://gitee.com/molihuan/BilibiliCacheVideoMergeAndroid"; //************************** Fragment Tag标志 **************************** @@ -22,8 +21,8 @@ public class LConstants { public static final String TAG_FRAGMENT_MAIN_FFMPEG = "frameLayout_main_ffmpeg_area_mlh"; //本项目地址 - public static final String PROJECT_ADDRESS = "https://github.com/molihuan/BilibiliCacheVideoMerge"; - //public static final String PROJECT_ADDRESS_GITEE = "https://github.com/molihuan/BilibiliCacheVideoMerge"; + public static final String PROJECT_ADDRESS_GITHUB = "https://github.com/molihuan/BilibiliCacheVideoMerge"; + public static final String PROJECT_ADDRESS_GITEE = "https://gitee.com/molihuan/BilibiliCacheVideoMergeAndroid"; } diff --git a/app/src/main/java/com/molihua/hlbmerge/utils/UpdataTools.java b/app/src/main/java/com/molihua/hlbmerge/utils/UpdataTools.java index 4a11583..72d03ce 100644 --- a/app/src/main/java/com/molihua/hlbmerge/utils/UpdataTools.java +++ b/app/src/main/java/com/molihua/hlbmerge/utils/UpdataTools.java @@ -57,9 +57,9 @@ public static void limitClickCheckUpdata(Context context) { if (unlimitClickCheckUpdataMills == 0) { unlimitClickCheckUpdataMills = nowMills + 300000; - Mtools.toast("为了减小服务器压力,请5分钟后再试 或 自行进入下载:" + LConstants.PROJECT_ADDRESS); + Mtools.toast("为了减小服务器压力,请5分钟后再试 或 自行进入官网(开源地址)下载"); } else if (nowMills < unlimitClickCheckUpdataMills) { - Mtools.toast(String.format("为了减小服务器压力,请%s分钟后再试 或 自行进入下载:" + LConstants.PROJECT_ADDRESS, (unlimitClickCheckUpdataMills - nowMills) / 60000)); + Mtools.toast(String.format("为了减小服务器压力,请%s分钟后再试 或 自行进入官网(开源地址)下载", (unlimitClickCheckUpdataMills - nowMills) / 60000)); } else { checkUpdata(context); clickCheckUpdataTimes = 0; @@ -88,14 +88,14 @@ public void onFailure(UpdateError error) { case UpdateError.ERROR.CHECK_NO_WIFI: break; default: - Mtools.toast("更新失败!正在尝试使用备用链接 或 自行进入下载:" + LConstants.PROJECT_ADDRESS, Toast.LENGTH_LONG); + Mtools.toast("更新失败!正在尝试使用备用链接 或 自行进入官网(开源地址)下载", Toast.LENGTH_LONG); //启用备用检测更新 UpdataTools.checkUpdataByGitlink(context.getApplicationContext()); } } }) - .supportSilentInstall(true) //设置是否支持静默安装,默认是true + .supportSilentInstall(false) //设置是否支持静默安装,默认是true ; } diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index ce5b60e..b3b7cec 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -28,6 +28,14 @@ android:contentDescription="Logo" android:src="@drawable/ml130" /> + + - + android:title="开源地址(使用教程)" /> + android:title="@string/CHECK_UPDATES" /> + + 访问%s目录需要授予权限,\n是否进行授权? 确定 取消 + 检查更新 + 更新日志 + 赞助 \ No newline at end of file diff --git a/jsonapi/update_release.json b/jsonapi/update_release.json index b29cc9e..b4b3fb7 100644 --- a/jsonapi/update_release.json +++ b/jsonapi/update_release.json @@ -2,11 +2,11 @@ "Code": 0, "Msg": "", "UpdateStatus": 1, - "VersionCode": 57, - "VersionName": "1.6.9.7", - "UploadTime": "2023-09-17", - "ModifyContent": "\r\n1、修复一些闪退问题。\r\n2、加快缓存数据获取速度,修复卡死问题。", + "VersionCode": 58, + "VersionName": "1.6.9.8", + "UploadTime": "2023-09-19", + "ModifyContent": "\r\n1、升级权限请求依赖。\r\n2、细节优化。", "DownloadUrl": "https://gitee.com/molihuan/BilibiliCacheVideoMergeAndroid/raw/master/app/release/app-armeabi-v7a.apk", - "ApkSize": 17815, + "ApkSize": 17828, "ApkMd5": "" } \ No newline at end of file