package com.weixin.android;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.weixin.android.view.AudioRecorderButton;
import com.weixin.android.view.AudioRecorderButton.AudioFinishRecorderListener;
public class MainActivity extends Activity {
private ListView mListview;
private AudioRecorderButton mAudioRecorderButton;
private ArrayAdapter<Recorder> mAdapter;
private List<Recorder> mDatas = new ArrayList<Recorder>();
private View animView;
private static int mIndex =-1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListview = (ListView) findViewById(R.id.listview);
mAudioRecorderButton = (AudioRecorderButton) findViewById(R.id.button);
mAudioRecorderButton.setAudioFinishRecorderListener(new AudioFinishRecorderListener() {
@Override
public void onFinish(float secends, String filePath) {
Recorder recorder = new Recorder(secends, filePath);
mDatas.add(recorder);
mAdapter.notifyDataSetChanged();
mListview.setSelection(mDatas.size()-1);
}
});
mAdapter = new RecorderAdapter(this, mDatas);
mListview.setAdapter(mAdapter);
mListview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int arg2,
long arg3) {
if (animView !=null) {
animView.setBackgroundResource(R.drawable.adj);
animView=null;
}
// 播放动画,
animView =view.findViewById(R.id.id_recorder_anim);
animView.setBackgroundResource(R.drawable.play_anim);
AnimationDrawable anim =(AnimationDrawable) animView.getBackground();
if (mIndex==arg2) {
MediaManager.relese();
animView.setBackgroundResource(R.drawable.adj);
mIndex=-1;
}else{
anim.start();
//播放音频
MediaManager.playSound(mDatas.get(arg2).filePath,new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer arg0) {
animView.setBackgroundResource(R.drawable.adj);
}
});
mIndex=arg2;
}
}
});
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
MediaManager.pause();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
MediaManager.resume();
}
@Override
protected void onDestroy() {
super.onDestroy();
MediaManager.relese();
}
class Recorder {
float time;
String filePath;
public Recorder(float mtime, String mfilePath) {
super();
this.time = mtime;
this.filePath = mfilePath;
}
public float getTime() {
return time;
}
public void setTime(float time) {
this.time = time;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
}
}