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.model.Music; import me.wcy.music.utils.FileUtils; /** * 播放搜索的音乐 * Created by hzwangchenyan on 2016/1/13. */ public abstract class PlaySearchedMusic extends PlayMusic { private SearchMusic.Song mSong; public PlaySearchedMusic(Activity activity, SearchMusic.Song song) { super(activity, 2); mSong = song; } @Override protected void getPlayInfo() { String lrcFileName = FileUtils.getLrcFileName(mSong.getArtistname(), mSong.getSongname()); File lrcFile = new File(FileUtils.getLrcDir() + lrcFileName); if (!lrcFile.exists()) { downloadLrc(lrcFile.getPath()); } else { mCounter++; } music = new Music(); music.setType(Music.Type.ONLINE); music.setTitle(mSong.getSongname()); music.setArtist(mSong.getArtistname()); // 获取歌曲播放链接 HttpClient.getMusicDownloadInfo(mSong.getSongid(), new HttpCallback<DownloadInfo>() { @Override public void onSuccess(DownloadInfo response) { if (response == null || response.getBitrate() == null) { onFail(null); return; } music.setPath(response.getBitrate().getFile_link()); music.setDuration(response.getBitrate().getFile_duration() * 1000); checkCounter(); } @Override public void onFail(Exception e) { onExecuteFail(e); } }); } private void downloadLrc(final String filePath) { HttpClient.getLrc(mSong.getSongid(), new HttpCallback<Lrc>() { @Override public void onSuccess(Lrc response) { if (response == null || TextUtils.isEmpty(response.getLrcContent())) { return; } FileUtils.saveLrcFile(filePath, response.getLrcContent()); } @Override public void onFail(Exception e) { } @Override public void onFinish() { checkCounter(); } }); } }