import com.wwj.sb.service.PlayerService;
import com.wwj.sb.utils.ConstantUtil;
import com.wwj.sb.utils.CustomDialog;
import com.wwj.sb.utils.MediaUtil;
/**
-
2013/5/7
-
简、美音乐播放器
-
@author wwj
*/
public class HomeActivity extends Activity {
private ListView mMusiclist; // 音乐列表
private List mp3Infos = null;
private SimpleAdapter mAdapter; // 简单适配器
private Button previousBtn; // 上一首
private Button repeatBtn; // 重复(单曲循环、全部循环)
private Button playBtn; // 播放(播放、暂停)
private Button shuffleBtn; // 随机播放
private Button nextBtn; // 下一首
private TextView musicTitle;//歌曲标题
private TextView musicDuration; //歌曲时间
private Button musicPlaying; //歌曲专辑
private int repeatState; //循环标识
private final int isCurrentRepeat = 1; // 单曲循环
private final int isAllRepeat = 2; // 全部循环
private final int isNoneRepeat = 3; // 无重复播放
private boolean isFirstTime = true;
private boolean isPlaying; // 正在播放
private boolean isPause; // 暂停
private boolean isNoneShuffle = true; // 顺序播放
private boolean isShuffle = false; // 随机播放
private int listPosition = 0; //标识列表位置
private HomeReceiver homeReceiver; //自定义的广播接收器
//一系列动作
public static final String UPDATE_ACTION = “com.wwj.action.UPDATE_ACTION”;
public static final String CTL_ACTION = “com.wwj.action.CTL_ACTION”;
public static final String MUSIC_CURRENT = “com.wwj.action.MUSIC_CURRENT”;
public static final String MUSIC_DURATION = “com.wwj.action.MUSIC_DURATION”;
public static final String REPEAT_ACTION = “com.wwj.action.REPEAT_ACTION”;
public static final String SHUFFLE_ACTION = “com.wwj.action.SHUFFLE_ACTION”;
private int currentTime;
private int duration;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home_activity_layout);
mMusiclist = (ListView) findViewById(R.id.music_list);
mMusiclist.setOnItemClickListener(new MusicListItemClickListener());
mMusiclist.setOnCreateContextMenuListener(new MusicListItemContextMenuListener());
mp3Infos = MediaUtil.getMp3Infos(getApplicationContext()); //获取歌曲对象集合
setListAdpter(MediaUtil.getMusicMaps(mp3Infos)); //显示歌曲列表
findViewById(); //找到界面上的每一个控件
setViewOnclickListener(); //为一些控件设置监听器
repeatState = isNoneRepeat; // 初始状态为无重复播放状态
homeReceiver = new HomeReceiver();
// 创建IntentFilter
IntentFilter filter = new IntentFilter();
// 指定BroadcastReceiver监听的Action
filter.addAction(UPDATE_ACTION);
filter.addAction(MUSIC_CURRENT);
filter.addAction(MUSIC_DURATION);
filter.addAction(REPEAT_ACTION);
filter.addAction(SHUFFLE_ACTION);
// 注册BroadcastReceiver
registerReceiver(homeReceiver, filter);
}
/**
- 从界面上根据id获取按钮
*/
private void findViewById() {
previousBtn = (Button) findViewById(R.id.previous_music);
repeatBtn = (Button) findViewById(R.id.repeat_music);
playBtn = (Button) findViewById(R.id.play_music);
shuffleBtn = (Button) findViewById(R.id.shuffle_music);
nextBtn = (Button) findViewById(R.id.next_music);
musicTitle = (TextView) findViewById(R.id.music_title);
musicDuration = (TextView) findViewById(R.id.music_duration);
musicPlaying = (Button) findViewById(R.id.playing);
}
/**
- 给每一个按钮设置监听器
*/
private void setViewOnclickListener() {
ViewOnClickListener viewOnClickListener = new ViewOnClickListener();
previousBtn.setOnClickListener(viewOnClickListener);
repeatBtn.setOnClickListener(viewOnClickListener);
playBtn.setOnClickListener(viewOnClickListener);
shuffleBtn.setOnClickListener(viewOnClickListener);
nextBtn.setOnClickListener(viewOnClickListener);
musicPlaying.setOnClickListener(viewOnClickListener);
}
private class ViewOnClickListener implements OnClickListener {
Intent intent = new Intent();
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.previous_music: // 上一首
playBtn.setBackgroundResource(R.drawable.play_selector);
isFirstTime = false;
isPlaying = true;
isPause =