支持分享音乐文件夹
新增在获取音乐数据时,隐藏实际文件路径的功能 调整原播放音乐提供路径改为提供音乐MD5
This commit is contained in:
@@ -3,6 +3,7 @@ package com.yutou.nas.Services;
|
||||
|
||||
import com.yutou.nas.mybatis.model.MusicData;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
public interface IMusicToolsService {
|
||||
@@ -10,15 +11,16 @@ public interface IMusicToolsService {
|
||||
|
||||
void scanMusic();
|
||||
|
||||
List<MusicData> getPath(String path, boolean isDir);
|
||||
List<MusicData> getPath(String path, boolean isDir,boolean delPath);
|
||||
|
||||
MusicData getMusicData(String md5);
|
||||
MusicData getMusicDataOfMd5(String md5,boolean isDelFile);
|
||||
MusicData getMusicData(String path,boolean isDelFile);
|
||||
|
||||
List<MusicData> findOfTitle(String title);
|
||||
List<MusicData> findOfTitle(String title,boolean isDelFile);
|
||||
|
||||
List<MusicData> findOfArtist(String by);
|
||||
List<MusicData> findOfArtist(String by,boolean isDelFile);
|
||||
|
||||
List<MusicData> getMusicList();
|
||||
List<MusicData> getMusicList(boolean isDelFile);
|
||||
|
||||
int getLength();
|
||||
|
||||
@@ -27,4 +29,6 @@ public interface IMusicToolsService {
|
||||
String getMusicPath();
|
||||
|
||||
byte[] readImage(String path) throws Exception;
|
||||
|
||||
File getMusicOfMd5(String md5,boolean isDelFile);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.yutou.nas.Services.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.yutou.nas.Datas.AppData;
|
||||
import com.yutou.nas.mybatis.dao.MusicDataDao;
|
||||
import com.yutou.nas.mybatis.model.MusicData;
|
||||
@@ -108,7 +109,7 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
* @return 音乐列表
|
||||
*/
|
||||
@Override
|
||||
public List<MusicData> getPath(String path, boolean isDir) {
|
||||
public List<MusicData> getPath(String path, boolean isDir,boolean delPath) {
|
||||
List<MusicData> list = new ArrayList<>();
|
||||
List<MusicData> main = new ArrayList<>();
|
||||
MusicDataExample example = new MusicDataExample();
|
||||
@@ -119,7 +120,7 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
}
|
||||
if (isDir) {
|
||||
example.createCriteria().andFileLike(tmpPath.replace(File.separator, replacement) + "%");
|
||||
main = musicDataDao.selectByExample(example);
|
||||
main = musicDataDao.selectByExample(example,delPath);
|
||||
}
|
||||
tmpPath = tmpPath.replace(File.separator, replacement)
|
||||
.replace("+", "\\+")
|
||||
@@ -127,7 +128,7 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
.replace("(", "\\(")
|
||||
.replace(")", "\\)")
|
||||
.replace("]", "\\]");
|
||||
main.addAll(musicDataDao.selectByRegexp(tmpPath + replacement + "([^" + replacement + "]+)$"));
|
||||
main.addAll(musicDataDao.selectByRegexp(tmpPath + replacement + "([^" + replacement + "]+)$",delPath));
|
||||
|
||||
if (!path.equals(AppData.defaultMusicPath) && !"root".equals(path)) {
|
||||
MusicData t2 = new MusicData();
|
||||
@@ -147,6 +148,8 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public List<String> getAllAlbum() {
|
||||
return musicDataDao.selectAllAlbum();
|
||||
}
|
||||
@@ -155,12 +158,12 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
return musicDataDao.selectAllArtist();
|
||||
}
|
||||
|
||||
public List<MusicData> selectAlbum(String album) {
|
||||
return musicDataDao.selectAlbum(album);
|
||||
public List<MusicData> selectAlbum(String album,boolean isDelFile) {
|
||||
return musicDataDao.selectAlbum(album,isDelFile);
|
||||
}
|
||||
|
||||
public List<MusicData> selectArtist(String artist) {
|
||||
return musicDataDao.selectArtist(artist);
|
||||
public List<MusicData> selectArtist(String artist,boolean isDelFile) {
|
||||
return musicDataDao.selectArtist(artist,isDelFile);
|
||||
}
|
||||
|
||||
private void getDirList(String path, List<MusicData> list) {
|
||||
@@ -189,7 +192,7 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
MusicData data = getMetadata(file);
|
||||
if (data != null) {
|
||||
try {
|
||||
if (getMusicData(file.getAbsolutePath()) == null) {
|
||||
if (getMusicData(file.getAbsolutePath(),false) == null) {
|
||||
// System.out.println(data);
|
||||
musicDataDao.insert(data);
|
||||
}
|
||||
@@ -202,10 +205,20 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public MusicData getMusicData(String path) {
|
||||
public MusicData getMusicData(String path,boolean delFile) {
|
||||
MusicDataExample example = new MusicDataExample();
|
||||
example.createCriteria().andFileEqualTo(path);
|
||||
List<MusicData> list = musicDataDao.selectByExample(example);
|
||||
List<MusicData> list = musicDataDao.selectByExample(example,delFile);
|
||||
if (list != null && list.size() > 0) {
|
||||
return list.get(0);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public MusicData getMusicDataOfMd5(String md5, boolean isDelFile) {
|
||||
MusicDataExample example = new MusicDataExample();
|
||||
example.createCriteria().andMd5EqualTo(md5);
|
||||
List<MusicData> list = musicDataDao.selectByExample(example,isDelFile);
|
||||
if (list != null && list.size() > 0) {
|
||||
return list.get(0);
|
||||
}
|
||||
@@ -471,23 +484,23 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MusicData> findOfTitle(String title) {
|
||||
return find(title, FIND_TITLE);
|
||||
public List<MusicData> findOfTitle(String title,boolean delFile) {
|
||||
return find(title, FIND_TITLE,delFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MusicData> findOfArtist(String by) {
|
||||
return find(by, FIND_ARTIST);
|
||||
public List<MusicData> findOfArtist(String by,boolean delFile) {
|
||||
return find(by, FIND_ARTIST,delFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MusicData> getMusicList() {
|
||||
return musicDataDao.selectByExample(new MusicDataExample());
|
||||
public List<MusicData> getMusicList(boolean delFile) {
|
||||
return musicDataDao.selectByExample(new MusicDataExample(),delFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLength() {
|
||||
return musicDataDao.selectByExample(new MusicDataExample()).size();
|
||||
return musicDataDao.selectByExample(new MusicDataExample(),true).size();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -495,7 +508,7 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
return isScan;
|
||||
}
|
||||
|
||||
private List<MusicData> find(String title, int type) {
|
||||
private List<MusicData> find(String title, int type,boolean delFile) {
|
||||
List<MusicData> list;
|
||||
MusicDataExample example = new MusicDataExample();
|
||||
if (type == FIND_TITLE) {
|
||||
@@ -503,7 +516,7 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
} else if (type == FIND_ARTIST) {
|
||||
example.createCriteria().andArtistEqualTo(title);
|
||||
}
|
||||
list = musicDataDao.selectByExample(example);
|
||||
list = musicDataDao.selectByExample(example,delFile);
|
||||
|
||||
return list;
|
||||
}
|
||||
@@ -530,6 +543,19 @@ public class MusicToolsServiceImpl implements IMusicToolsService {
|
||||
return bytes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getMusicOfMd5(String md5,boolean delFile) {
|
||||
MusicDataExample example=new MusicDataExample();
|
||||
example.createCriteria().andMd5EqualTo(md5);
|
||||
List<MusicData> list=musicDataDao.selectByExample(example,delFile);
|
||||
Log.i("Music Size",list.size());
|
||||
if(list!=null&&!list.isEmpty()){
|
||||
Log.i("Music File", list.get(0).toString());
|
||||
return new File(list.get(0).getFile());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private byte[] readImageFile(File file) throws Exception {
|
||||
String path = file.getAbsolutePath().replace(file.getName(), "");
|
||||
File img = new File(path, "cover.jpg");
|
||||
|
||||
Reference in New Issue
Block a user