[Modify]修改音樂功能適配安卓10

This commit is contained in:
wushaocheng
2022-12-21 18:28:08 +08:00
parent 3e21ed87c2
commit 790ccfa5e7
8 changed files with 18 additions and 14 deletions

View File

@@ -9,7 +9,7 @@
android:icon="@mipmap/app_logo" android:icon="@mipmap/app_logo"
android:label="@string/app_name" android:label="@string/app_name"
android:largeHeap="true" android:largeHeap="true"
android:requestLegacyExternalStorage="false" android:requestLegacyExternalStorage="true"
android:resizeableActivity="true" android:resizeableActivity="true"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/MyMaterialTheme" android:theme="@style/MyMaterialTheme"

View File

@@ -12,6 +12,7 @@ import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
import com.yizhuan.xchat_android_core.manager.RoomEvent; import com.yizhuan.xchat_android_core.manager.RoomEvent;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_library.common.file.FileHelper;
import com.yizhuan.xchat_android_library.utils.config.BasicConfig; import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -43,7 +44,7 @@ public class RtcEngineHandler extends Handler {
} }
rtcEngineManager.inRoom = true; rtcEngineManager.inRoom = true;
if (rtcEngineManager.needRecord && rtcEngineManager.mRtcEngine != null) { if (rtcEngineManager.needRecord && rtcEngineManager.mRtcEngine != null) {
rtcEngineManager.mRtcEngine.startAudioRecording(Environment.getExternalStorageDirectory() rtcEngineManager.mRtcEngine.startAudioRecording(FileHelper.getRootFilesDir(Environment.DIRECTORY_MUSIC).getAbsolutePath()
+ File.separator + BasicConfig.INSTANCE.getAppContext().getPackageName() + File.separator + BasicConfig.INSTANCE.getAppContext().getPackageName()
+ "/audio/" + System.currentTimeMillis() + ".aac", AUDIO_RECORDING_QUALITY_LOW); + "/audio/" + System.currentTimeMillis() + ".aac", AUDIO_RECORDING_QUALITY_LOW);
} }

View File

@@ -16,6 +16,7 @@ import com.yizhuan.xchat_android_constants.XChatConstants;
import com.yizhuan.xchat_android_core.manager.BaseEngine; import com.yizhuan.xchat_android_core.manager.BaseEngine;
import com.yizhuan.xchat_android_core.music.db.bean.LocalMusicBean; import com.yizhuan.xchat_android_core.music.db.bean.LocalMusicBean;
import com.yizhuan.xchat_android_core.music.model.PlayerModel; import com.yizhuan.xchat_android_core.music.model.PlayerModel;
import com.yizhuan.xchat_android_library.common.file.FileHelper;
import com.yizhuan.xchat_android_library.utils.config.BasicConfig; import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
import java.io.File; import java.io.File;
@@ -70,7 +71,7 @@ public class RtcEngineManager extends BaseEngine {
mRtcEngine.enableDualStreamMode(true); mRtcEngine.enableDualStreamMode(true);
mRtcEngine.setParameters(String.format(Locale.US, "{\"che.audio.headset.monitoring,true\"}")); mRtcEngine.setParameters(String.format(Locale.US, "{\"che.audio.headset.monitoring,true\"}"));
mRtcEngine.setParameters(String.format(Locale.US, "{\"che.audio.enable.androidlowlatencymode,true\"}")); mRtcEngine.setParameters(String.format(Locale.US, "{\"che.audio.enable.androidlowlatencymode,true\"}"));
mRtcEngine.setLogFile(Environment.getExternalStorageDirectory() mRtcEngine.setLogFile(FileHelper.getRootFilesDir(Environment.DIRECTORY_MUSIC).getAbsolutePath()
+ File.separator + BasicConfig.INSTANCE.getAppContext().getPackageName() + File.separator + BasicConfig.INSTANCE.getAppContext().getPackageName()
+ "/log/agora-rtc.log"); + "/log/agora-rtc.log");
} }

View File

@@ -12,6 +12,7 @@ import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
import com.yizhuan.xchat_android_core.manager.RoomEvent; import com.yizhuan.xchat_android_core.manager.RoomEvent;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_library.common.file.FileHelper;
import com.yizhuan.xchat_android_library.utils.config.BasicConfig; import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -43,7 +44,7 @@ public class TRtcEngineHandler extends Handler {
} }
rtcEngineManager.inRoom = true; rtcEngineManager.inRoom = true;
if (rtcEngineManager.needRecord && rtcEngineManager.mRtcEngine != null) { if (rtcEngineManager.needRecord && rtcEngineManager.mRtcEngine != null) {
rtcEngineManager.mRtcEngine.startAudioRecording(Environment.getExternalStorageDirectory() rtcEngineManager.mRtcEngine.startAudioRecording(FileHelper.getRootFilesDir(Environment.DIRECTORY_MUSIC).getAbsolutePath()
+ File.separator + BasicConfig.INSTANCE.getAppContext().getPackageName() + File.separator + BasicConfig.INSTANCE.getAppContext().getPackageName()
+ "/audio/" + System.currentTimeMillis() + ".aac", AUDIO_RECORDING_QUALITY_LOW); + "/audio/" + System.currentTimeMillis() + ".aac", AUDIO_RECORDING_QUALITY_LOW);
} }

View File

@@ -12,6 +12,7 @@ import android.provider.MediaStore;
import com.yizhuan.xchat_android_core.R; import com.yizhuan.xchat_android_core.R;
import com.yizhuan.xchat_android_core.music.db.bean.LocalMusicBean; import com.yizhuan.xchat_android_core.music.db.bean.LocalMusicBean;
import com.yizhuan.xchat_android_core.music.db.model.LocalMusicDbModel; import com.yizhuan.xchat_android_core.music.db.model.LocalMusicDbModel;
import com.yizhuan.xchat_android_library.common.file.FileHelper;
import com.yizhuan.xchat_android_library.utils.BlankUtil; import com.yizhuan.xchat_android_library.utils.BlankUtil;
import com.yizhuan.xchat_android_library.utils.ResUtil; import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.file.BasicFileUtils; import com.yizhuan.xchat_android_library.utils.file.BasicFileUtils;
@@ -258,7 +259,7 @@ public class AsyncTaskScanMusicFile extends AsyncTask<Context, AsyncTaskScanMusi
MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media._ID}; MediaStore.Audio.Media._ID};
String rootPath = Environment.getExternalStorageDirectory() + "/"; String rootPath = FileHelper.getRootFilesDir(Environment.DIRECTORY_MUSIC).getAbsolutePath() + "/";
donwloadPaths = new ArrayList<>(); donwloadPaths = new ArrayList<>();
donwloadPaths.add(rootPath+"kgmusic/download/");//酷狗目录 donwloadPaths.add(rootPath+"kgmusic/download/");//酷狗目录
donwloadPaths.add(rootPath+"qqmusic/song/");//qq音乐 donwloadPaths.add(rootPath+"qqmusic/song/");//qq音乐

View File

@@ -7,6 +7,7 @@ import android.os.StatFs;
import android.util.Log; import android.util.Log;
import com.yizhuan.xchat_android_library.R; import com.yizhuan.xchat_android_library.R;
import com.yizhuan.xchat_android_library.common.file.FileHelper;
import com.yizhuan.xchat_android_library.utils.ResUtil; import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.StringUtils; import com.yizhuan.xchat_android_library.utils.StringUtils;
import com.yizhuan.xchat_android_library.utils.json.JsonParser; import com.yizhuan.xchat_android_library.utils.json.JsonParser;
@@ -72,7 +73,7 @@ public class StringDiskCache {
*/ */
public static StringDiskCache openCache(File cacheDir, long maxByteSize) { public static StringDiskCache openCache(File cacheDir, long maxByteSize) {
if (cacheDir == null) { if (cacheDir == null) {
cacheDir = new File(Environment.getExternalStorageDirectory().getPath() + File.separator + "cacheDir"); cacheDir = new File(FileHelper.getRootCacheDir().getAbsolutePath() + File.separator + "cacheDir");
} }
if (!cacheDir.exists()) { if (!cacheDir.exists()) {

View File

@@ -24,6 +24,7 @@ import android.os.Environment;
import android.text.TextUtils; import android.text.TextUtils;
import com.yizhuan.xchat_android_library.R; import com.yizhuan.xchat_android_library.R;
import com.yizhuan.xchat_android_library.common.file.FileHelper;
import com.yizhuan.xchat_android_library.utils.ResUtil; import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.StringUtils; import com.yizhuan.xchat_android_library.utils.StringUtils;
@@ -82,7 +83,7 @@ public final class StorageUtils {
public static File getExternalStorageDirectory(Context context, String uniqueName) { public static File getExternalStorageDirectory(Context context, String uniqueName) {
File appDir = null; File appDir = null;
if (MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) && hasExternalStoragePermission(context)) { if (MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) && hasExternalStoragePermission(context)) {
appDir = Environment.getExternalStorageDirectory(); appDir = FileHelper.getRootCacheDir();
} }
if (appDir == null) { if (appDir == null) {
appDir = context.getCacheDir(); appDir = context.getCacheDir();
@@ -127,7 +128,7 @@ public final class StorageUtils {
public static File getOwnCacheDirectory(Context context, String cacheDir) { public static File getOwnCacheDirectory(Context context, String cacheDir) {
File appCacheDir = null; File appCacheDir = null;
if (MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) && hasExternalStoragePermission(context)) { if (MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) && hasExternalStoragePermission(context)) {
appCacheDir = new File(Environment.getExternalStorageDirectory(), cacheDir); appCacheDir = new File(FileHelper.getRootCacheDir().getAbsolutePath(), cacheDir);
} }
if (appCacheDir == null || (!appCacheDir.exists() && !appCacheDir.mkdirs())) { if (appCacheDir == null || (!appCacheDir.exists() && !appCacheDir.mkdirs())) {
appCacheDir = context.getCacheDir(); appCacheDir = context.getCacheDir();
@@ -136,7 +137,7 @@ public final class StorageUtils {
} }
private static File getExternalCacheDir(Context context) { private static File getExternalCacheDir(Context context) {
File dataDir = new File(new File(Environment.getExternalStorageDirectory(), "Android"), "data"); File dataDir = new File(new File(FileHelper.getRootCacheDir().getAbsolutePath(), "Android"), "data");
File appCacheDir = new File(new File(dataDir, context.getPackageName()), "cache"); File appCacheDir = new File(new File(dataDir, context.getPackageName()), "cache");
if (!appCacheDir.exists()) { if (!appCacheDir.exists()) {
if (!appCacheDir.mkdirs()) { if (!appCacheDir.mkdirs()) {
@@ -166,7 +167,7 @@ public final class StorageUtils {
* get(1)是有效的存储目录,如/mnt/sdcard/ * get(1)是有效的存储目录,如/mnt/sdcard/
*/ */
public static ArrayList<HashSet<String>> getRepeatMountsAndStorage(boolean filterSubdir) { public static ArrayList<HashSet<String>> getRepeatMountsAndStorage(boolean filterSubdir) {
String storagePath = Environment.getExternalStorageDirectory().getAbsolutePath(); String storagePath = FileHelper.getRootCacheDir().getAbsolutePath();
ArrayList<HashSet<String>> result = new ArrayList<HashSet<String>>(2); ArrayList<HashSet<String>> result = new ArrayList<HashSet<String>>(2);
HashSet<String> repeatMounts = new HashSet<String>(); HashSet<String> repeatMounts = new HashSet<String>();
HashSet<String> totalStorages = new HashSet<String>(); HashSet<String> totalStorages = new HashSet<String>();
@@ -213,7 +214,7 @@ public final class StorageUtils {
} }
if (effectiveStorages.isEmpty()) { if (effectiveStorages.isEmpty()) {
effectiveStorages effectiveStorages
.add(Environment.getExternalStorageDirectory().getAbsolutePath() + "/"); .add(FileHelper.getRootCacheDir().getAbsolutePath() + "/");
} }
repeatMounts.removeAll(effectiveStorages); repeatMounts.removeAll(effectiveStorages);
result.add(repeatMounts); result.add(repeatMounts);
@@ -506,7 +507,7 @@ public final class StorageUtils {
} }
list.add(path); list.add(path);
} }
final String storagePath = Environment.getExternalStorageDirectory().getAbsolutePath(); final String storagePath = FileHelper.getRootCacheDir().getAbsolutePath();
Collections.sort(list, new Comparator<String>() { Collections.sort(list, new Comparator<String>() {
@Override @Override
public int compare(String lhs, String rhs) { public int compare(String lhs, String rhs) {

View File

@@ -67,7 +67,6 @@ public class ExternalStorage {
} }
private void loadStorageState(Context context) { private void loadStorageState(Context context) {
// String externalPath = Environment.getExternalStorageDirectory().getPath();
String externalPath = FileHelper.getRootCacheDir().getPath(); String externalPath = FileHelper.getRootCacheDir().getPath();
this.sdkStorageRoot = externalPath + "/" + context.getPackageName() + "/"; this.sdkStorageRoot = externalPath + "/" + context.getPackageName() + "/";
} }
@@ -176,7 +175,6 @@ public class ExternalStorage {
} }
public boolean isSdkStorageReady() { public boolean isSdkStorageReady() {
// String externalRoot = Environment.getExternalStorageDirectory().getAbsolutePath();
String externalRoot = FileHelper.getRootCacheDir().getPath(); String externalRoot = FileHelper.getRootCacheDir().getPath();
if (this.sdkStorageRoot.startsWith(externalRoot)) { if (this.sdkStorageRoot.startsWith(externalRoot)) {
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);