[Modify]修改音樂功能適配安卓10
This commit is contained in:
@@ -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"
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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");
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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音乐
|
||||||
|
@@ -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()) {
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user