[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:label="@string/app_name"
android:largeHeap="true"
android:requestLegacyExternalStorage="false"
android:requestLegacyExternalStorage="true"
android:resizeableActivity="true"
android:supportsRtl="true"
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.RoomEvent;
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 org.jetbrains.annotations.NotNull;
@@ -43,7 +44,7 @@ public class RtcEngineHandler extends Handler {
}
rtcEngineManager.inRoom = true;
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()
+ "/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.music.db.bean.LocalMusicBean;
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 java.io.File;
@@ -70,7 +71,7 @@ public class RtcEngineManager extends BaseEngine {
mRtcEngine.enableDualStreamMode(true);
mRtcEngine.setParameters(String.format(Locale.US, "{\"che.audio.headset.monitoring,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()
+ "/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.RoomEvent;
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 org.jetbrains.annotations.NotNull;
@@ -43,7 +44,7 @@ public class TRtcEngineHandler extends Handler {
}
rtcEngineManager.inRoom = true;
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()
+ "/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.music.db.bean.LocalMusicBean;
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.ResUtil;
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._ID};
String rootPath = Environment.getExternalStorageDirectory() + "/";
String rootPath = FileHelper.getRootFilesDir(Environment.DIRECTORY_MUSIC).getAbsolutePath() + "/";
donwloadPaths = new ArrayList<>();
donwloadPaths.add(rootPath+"kgmusic/download/");//酷狗目录
donwloadPaths.add(rootPath+"qqmusic/song/");//qq音乐

View File

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

View File

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

View File

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