package com.example.a29.myfourth;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import com.example.a29.myfourth.entity.MP3;
import com.example.a29.myfourth.entity.SendData;
import com.example.a29.myfourth.service.MusicService;
import com.example.a29.myfourth.utils.MP3Adapter;
import com.example.a29.myfourth.utils.MP3Utils;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener,
SeekBar.OnSeekBarChangeListener,
AdapterView.OnItemClickListener{
private static ImageButton img_prev=null,img_play=null,img_stop=null,img_next=null;
private static SeekBar sb=null;
private static TextView tv_title=null,tv_time=null;
private ListView lv_music=null;
private MP3Adapter mp3Adapter=null;
public static List<MP3> mp3List=null;
private boolean flag=false;
private static int max=0,progress=0,index=0;
public static Handler handler=new Handler(){
@Override
public void handleMessage(Message msg){
switch (msg.what){
case 100:
SendData sendData=(SendData) msg.obj;
//当前位置
progress = sendData.progress;
max=sendData.max;
index=sendData.index;
sb.setMax(max);
sb.setProgress(progress);
String str1=MP3Utils.timeParse(progress);
String str2=MP3Utils.timeParse(max);
tv_time.setText(str1+"/"+str2);
String mp3=mp3List.get(index).getTitle();
tv_title.setText(mp3);
break;
case 200:
int tt=msg.arg1;
if(tt==1){
img_play.setImageResource(android.R.drawable.ic_media_pause);
}
if(tt==-1){
img_play.setImageResource(android.R.drawable.ic_media_play);
}
break;
case 300:
max=0;
progress=0;
img_play.setImageResource(android.R.drawable.ic_media_play);
sb.setProgress(0);
tv_time.setText("00:00/00:00");
tv_title.setText("");
}
}
};
private Handler handler2=new Handler(){
public void handleMessage(Message msg){
switch (msg.what){
case -100:
moveTaskToBack(true);
break;
}
}
};
@Override
public void onClick(View v) {
int id=v.getId();
switch (id){
case R.id.img_prev:
index--;
progress=0;
sendToService("prev",index,progress,true);
img_play.setImageResource(android.R.drawable.ic_media_pause);
break;
case R.id.img_play:
sendToService("play",index,progress,true);
// Work ww=new Work();
// ww.start();
break;
case R.id.img_stop:
Intent tt=new Intent(MainActivity.this,MusicService.class);
stopService(tt);
img_play.setImageResource(android.R.drawable.ic_media_play);
break;
case R.id.img_next:
index++;
progress=0;
sendToService("next",index,progress,true);
img_play.setImageResource(android.R.drawable.ic_media_pause);
break;
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
index=position;
progress=0;
sendToService("click",index,progress,true);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
this.progress=progress;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
sendToService("change",index,progress,false);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
this.progress=sb.getProgress();
sendToService("change",index,progress,true);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_time=(TextView)findViewById(R.id.tv_time);
tv_title=(TextView)findViewById(R.id.tv_title);
img_play=(ImageButton)findViewById(R.id.img_play);
img_stop=(ImageButton)findViewById(R.id.img_stop);
img_prev=(ImageButton)findViewById(R.id.img_prev);
img_next=(ImageButton)findViewById(R.id.img_next);
sb=(SeekBar)findViewById(R.id.sb);
sb.setOnSeekBarChangeListener(this);
img_play.setOnClickListener(this);
img_stop.setOnClickListener(this);
img_prev.setOnClickListener(this);
img_next.setOnClickListener(this);
lv_music=(ListView)findViewById(R.id.lv_music);
checkRight();
if(flag==true) showAllMP3();
}
//-------------------------------------
//对权力进行检查
public void checkRight(){
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
int p1= ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);
int p2= PackageManager.PERMISSION_GRANTED;
if(p1 != p2) {
ActivityCompat.requestPermissions(this, new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE
},500);
}else{
flag=true;
}
}
}
//对点击的值进行判断
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults){
if(requestCode==500){
if(grantResults[0]==PackageManager.PERMISSION_GRANTED){
flag=true;
}else {
Toast.makeText(MainActivity.this,"Permission Deniod",Toast.LENGTH_SHORT).show();
}
}
super.onRequestPermissionsResult(requestCode,permissions,grantResults);
}
private void showAllMP3(){
mp3List = MP3Utils.getAllMP3(this);
if(mp3List!=null){
mp3Adapter=new MP3Adapter(this,R.layout.myitem,mp3List);
lv_music.setAdapter(mp3Adapter);
}
else{
lv_music.setAdapter(null);
}
}
private void sendToService(String act,int mm,int pp,boolean bb){
if(mp3List.size()>0){
Intent tt=new Intent(MainActivity.this, MusicService.class);
tt.putExtra("action",act);
tt.putExtra("index",mm);
tt.putExtra("progress",pp);
tt.putExtra("ok",bb);
//启动后台服务
startService(tt);
}
}
// private class Work extends Thread{
// public void run(){
// try
评论0