use of com.cyl.musiclake.bean.Music in project MusicLake by caiyonglong.
the class ArtistSongLoader method getSongsForArtistDB.
public static Observable<List<Music>> getSongsForArtistDB(final Context context, final Cursor cursor) {
return Observable.create(subscriber -> {
DBDaoImpl dbDaoImpl = new DBDaoImpl(context);
List<Music> results = dbDaoImpl.getSongsForCursor(cursor);
dbDaoImpl.closeDB();
subscriber.onNext(results);
subscriber.onComplete();
});
}
use of com.cyl.musiclake.bean.Music in project MusicLake by caiyonglong.
the class AlbumMusicAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(final ItemHolder holder, final int position) {
Music localItem = musicInfos.get(position);
holder.title.setText(ConvertUtils.getTitle(localItem.getTitle()));
holder.artist.setText(ConvertUtils.getArtistAndAlbum(localItem.getArtist(), localItem.getAlbum()));
if (PlayManager.getPlayingMusic() != null && PlayManager.getPlayingMusic().equals(localItem)) {
holder.v_playing.setVisibility(View.VISIBLE);
} else {
holder.v_playing.setVisibility(View.GONE);
}
setOnPopupMenuListener(holder, position);
}
use of com.cyl.musiclake.bean.Music in project MusicLake by caiyonglong.
the class DBDaoImpl method getMusicInfo.
/**
* 获取音乐信息
*
* @param mid
* @return
*/
public Music getMusicInfo(String mid) {
// 查询歌单
String query = "select * from music where mid = '" + mid + "'";
Cursor cursor = db.rawQuery(query, null);
if (cursor != null && cursor.getCount() > 0) {
if (cursor.moveToFirst()) {
Music music = new MusicCursorWrapper(cursor).getMusic();
return music;
}
}
// 记得关闭游标
if (cursor != null) {
cursor.close();
}
return null;
}
use of com.cyl.musiclake.bean.Music in project MusicLake by caiyonglong.
the class QQApiServiceImpl method search.
/**
* @param
* @return
*/
@SuppressWarnings({ "unchecked", "varargs" })
public static Observable<List<Music>> search(String key, int limit, int page) {
Map<String, String> params = new HashMap<>();
// page
params.put("p", String.valueOf(page));
// limit
params.put("n", String.valueOf(limit));
// key
params.put("w", key);
params.put("aggr", "1");
params.put("cr", "1");
params.put("lossless", "1");
params.put("format", "json");
return getApiService().searchByQQ(params).flatMap(qqApiModel -> {
List<Music> musicList = new ArrayList<>();
List<QQApiModel.DataBean.SongBean.ListBean> songList = qqApiModel.getData().getSong().getList();
for (int i = 0; i < songList.size(); i++) {
QQApiModel.DataBean.SongBean.ListBean song = songList.get(i);
Music music = new Music();
music.setType(Music.Type.QQ);
music.setOnline(true);
music.setId(song.getSongmid());
music.setTitle(song.getSongname());
String artists = song.getSinger().get(0).getName();
String artistIds = song.getSinger().get(0).getId() + "";
for (int j = 1; j < song.getSinger().size(); j++) {
artists += "," + song.getSinger().get(j).getName();
artistIds += "," + song.getSinger().get(j).getId();
}
music.setArtist(artists);
music.setArtistId(artistIds);
music.setAlbum(song.getAlbumname());
music.setAlbumId(song.getAlbumid());
music.setDuration(song.getPubtime());
// qq音乐播放地址前缀,代表音乐品质 M500一般,M800高
music.setPrefix(song.getSize128() != 0 ? "M500" : "M800");
String cover = "https://y.gtimg.cn/music/photo_new/T002R300x300M000" + song.getAlbummid() + ".jpg";
String coverBig = "https://y.gtimg.cn/music/photo_new/T002R500x500M000" + song.getAlbummid() + ".jpg";
String coverSmall = "https://y.gtimg.cn/music/photo_new/T002R150x150M000" + song.getAlbummid() + ".jpg";
music.setCoverUri(cover);
music.setCoverBig(coverBig);
music.setCoverSmall(coverSmall);
musicList.add(music);
}
LogUtil.e("search", page + "--" + limit + "qq :" + musicList.size());
return Observable.fromArray(musicList);
});
}
use of com.cyl.musiclake.bean.Music in project MusicLake by caiyonglong.
the class XiamiServiceImpl method search.
/**
* 搜索虾米音乐
*
* @param key 关键字
* @param limit
* @param page
* @return
*/
@SuppressWarnings({ "unchecked", "varargs" })
public static Observable<List<Music>> search(String key, int limit, int page) {
Map<String, String> params = new HashMap<>();
// page
params.put("v", "2.0");
// page
params.put("page", String.valueOf(page));
// limit
params.put("limit", String.valueOf(limit));
// key
params.put("key", key);
params.put("r", "search/songs");
params.put("app_key", "1");
params.put("format", "json");
return getApiService().searchByXiaMi(params).flatMap(xiaMiModel -> {
List<Music> musicList = new ArrayList<>();
List<XiamiModel.DataBean.SongsBean> songs = xiaMiModel.getData().getSongs();
for (int i = 0; i < songs.size(); i++) {
XiamiModel.DataBean.SongsBean song = songs.get(i);
Music music = new Music();
music.setType(Music.Type.XIAMI);
music.setOnline(true);
music.setId(String.valueOf(song.getSong_id()));
music.setTitle(song.getSong_name());
music.setArtist(song.getArtist_name());
music.setArtistId(String.valueOf(song.getArtist_id()));
music.setAlbum(song.getAlbum_name());
music.setAlbumId(song.getAlbum_id());
music.setUri(song.getListen_file());
String cover = song.getAlbum_logo() + "@1e_1c_0i_1o_100Q_250w_250h";
String coverBig = song.getAlbum_logo() + "@1e_1c_0i_1o_100Q_400w_400h";
String coverSmall = song.getAlbum_logo() + "@1e_1c_0i_1o_100Q_150w_150h";
music.setCoverUri(cover);
music.setCoverBig(coverBig);
music.setCoverSmall(coverSmall);
music.setLrcPath(song.getLyric());
musicList.add(music);
}
LogUtil.e("search", page + "--" + limit + "xiami :" + musicList.size());
return Observable.fromArray(musicList);
});
}
Aggregations