package com.example.ipcplayer.controller; import java.io.File; import java.util.ArrayList; import com.example.ipcplayer.activity.MainActivity; import com.example.ipcplayer.activity.PlayingActivity; import com.example.ipcplayer.convert.ConvertToMusicFile; import com.example.ipcplayer.manager.LocalMusicManager; import com.example.ipcplayer.manager.NowPlayingList; import com.example.ipcplayer.object.MusicFile; import com.example.ipcplayer.service.IPlayback; import com.example.ipcplayer.service.LocalPlayer; import com.example.ipcplayer.service.PlaybackService; import com.example.ipcplayer.utils.FileUtil; import com.example.ipcplayer.utils.LogUtil; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; public class LocalMusicController{ private static final String TAG = LocalMusicController.class.getSimpleName(); private Context mContext; private static LocalMusicController mInstance; private LocalMusicManager mLocalMusicManager; private LocalPlayer mLocalPlayer; private IPlayback mService; private LocalMusicController(Context context){ mContext = context; mLocalMusicManager = new LocalMusicManager(context); mLocalPlayer = new LocalPlayer(context); mService = MainActivity.getPlayService(); } public static LocalMusicController getInstance(Context context){ if (mInstance == null) { mInstance = new LocalMusicController(context); } return mInstance; } public static void releaseInstance(){ if(mInstance != null){ mInstance = null; } } public void playMusic(long id, Cursor cursor){ LogUtil.d(TAG + " playMusic id: " + id); MusicFile musicFile = ConvertToMusicFile.getInstance(mContext).idToMusicFile(id); LogUtil.d(TAG + " playMusic musicFile: " + musicFile.toString()); String path = mLocalMusicManager.getPlayPath(musicFile); LogUtil.d(TAG + " playMusic path: " + path); try { // if (mService.isPlaying()) { // mService.stop(); // } // mService.setDataSource(path); // NowPlayingList.getInstance().setPlayList(cursor); mService.openCurrent(id); mService.start(); } catch (Exception e) { e.printStackTrace(); return ; } Intent intent = new Intent(mContext,PlayingActivity.class); intent.putExtra("path", path); mContext.startActivity(intent); } public void checkSDCardFolder(){ ArrayList<File> appDir = FileUtil.getAllDirectory(); for(File file : appDir){ if(FileUtil.isDirectory(file) && file.exists()){ LogUtil.d(TAG + " " + file.getAbsolutePath() +" is exist"); }else{ FileUtil.createDiretory(file); } } } }