package me.wcy.music.executor; import android.app.Activity; import android.text.TextUtils; import java.io.File; import me.wcy.music.http.HttpCallback; import me.wcy.music.http.HttpClient; import me.wcy.music.model.DownloadInfo; import me.wcy.music.model.Lrc; import me.wcy.music.model.SearchMusic; import me.wcy.music.utils.FileUtils; /** * 下载搜索的音乐 * Created by hzwangchenyan on 2016/1/13. */ public abstract class DownloadSearchedMusic extends DownloadMusic { private SearchMusic.Song mSong; public DownloadSearchedMusic(Activity activity, SearchMusic.Song song) { super(activity); mSong = song; } @Override protected void download() { final String artist = mSong.getArtistname(); final String title = mSong.getSongname(); // 获取歌曲下载链接 HttpClient.getMusicDownloadInfo(mSong.getSongid(), new HttpCallback<DownloadInfo>() { @Override public void onSuccess(DownloadInfo response) { if (response == null || response.getBitrate() == null) { onFail(null); return; } downloadMusic(response.getBitrate().getFile_link(), artist, title); onExecuteSuccess(null); } @Override public void onFail(Exception e) { onExecuteFail(e); } }); // 下载歌词 String lrcFileName = FileUtils.getLrcFileName(artist, title); File lrcFile = new File(FileUtils.getLrcDir() + lrcFileName); if (!lrcFile.exists()) { downloadLrc(mSong.getSongid(), lrcFileName); } } private void downloadLrc(String songId, final String fileName) { HttpClient.getLrc(songId, new HttpCallback<Lrc>() { @Override public void onSuccess(Lrc response) { if (response == null || TextUtils.isEmpty(response.getLrcContent())) { return; } String filePath = FileUtils.getLrcDir() + fileName; FileUtils.saveLrcFile(filePath, response.getLrcContent()); } @Override public void onFail(Exception e) { } }); } }