package com.zl.media;

import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.Locale;

import com.zl.listview.R;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.media.MediaRecorder;
import android.net.Uri;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.MediaController;
import android.widget.TextView;
import android.widget.VideoView;

public class MusicPlayer extends Activity{
    private ImageButton btn_play,btn_pause,btn_stop,videoplay;
    private MediaPlayer mediaPlayer;
    private VideoView videoView;
    private MediaRecorder mediarecorder;
    private TextView text_play,text_pause;
    private Button bt_jump;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.musicplayer);
        btn_play = (ImageButton)findViewById(R.id.play);
        btn_pause = (ImageButton)findViewById(R.id.pause);
        btn_stop = (ImageButton)findViewById(R.id.stop);
        videoplay = (ImageButton)findViewById(R.id.videoplay);
        videoView = (VideoView)findViewById(R.id.videoview);
        text_play = (TextView)findViewById(R.id.text_play);
        text_pause = (TextView)findViewById(R.id.text_pause);
        bt_jump = (Button)findViewById(R.id.bt_jump);
        btn_play.setEnabled(false);
        btn_pause.setEnabled(false);
        btn_stop.setEnabled(false);
        //定义MediaController对象
        MediaController mediaController = new MediaController(this);
        //把MediaController对象绑定到VideoView上
        mediaController.setAnchorView(videoView);
        //设置VideoView的控制器是mediaController
        videoView.setMediaController(mediaController);
        OnClickListener ocl = new OnClickListener() {
            @Override
            public void onClick(View view) {
                int id = view.getId();
                switch (id) {
                case R.id.bt_jump:
//                    Intent intent = new Intent();
//                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//                    ComponentName comp = new ComponentName("com.zl.musicplayer", "com.zl.musicplayer.IYue");    
//                    intent.setComponent(comp);     
//                    intent.setAction("android.intent.action.MAIN");  
//                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//                    startActivity(intent);
//                    intent.setComponent(new ComponentName("com.zl.media","com.zl.musicplayer"));   
//                    intent.setAction(Intent.ACTION_VIEW);  
//                    intent.setAction("com.zl.musicplayer");   
//                    startActivity(intent);   
                    Uri uri = Uri.parse("http://blog.sina.com.cn/s/blog_781428870102v0q3.html");
                    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                    startActivity(intent);
                    break;
                case R.id.play:
                    play();
                    break;
                case R.id.pause:
                    pause();
                    break;
                case R.id.stop:
                    stop();
                    break;
                case R.id.videoplay:
                    //这两种方法都可以 videoView.setVideoPath("file:///sdcard/love_480320.mp4");
                    videoView.setVideoURI(Uri.parse("/sdcard/love_480320.mp4"));
                    videoView.start();
                    break;
                case R.id.text_play:
                    File file = new File("/sdcard/"+"ZL"+
                             new DateFormat().format("yyyyMMdd_hhmmss",Calendar.getInstance(Locale.CHINA)) + ".amr");
                    mediarecorder = new MediaRecorder();
                    // 从麦克风源进行录音
                    mediarecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
                    // 设置输出格式
                    mediarecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
                    // 设置编码格式
                    mediarecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
                    // 设置输出文件
                    mediarecorder.setOutputFile(file.getAbsolutePath());
                    try {
                        // 创建文件
                        file.createNewFile();
                        // 准备录制
                        mediarecorder.prepare();
                    }catch (IOException e) {
                        e.printStackTrace();
                    }
                    // 开始录制
                    mediarecorder.start();
                    text_play.setText("录音中……");
                    break;
                case R.id.text_pause:
                    if (mediarecorder != null) {
                        mediarecorder.stop();
                        mediarecorder.release();
                        mediarecorder = null;
                        text_play.setText("录音");
                    }
                    break;
                }
            }
        };
        btn_play.setOnClickListener(ocl);
        btn_pause.setOnClickListener(ocl);
        btn_stop.setOnClickListener(ocl);
        videoplay.setOnClickListener(ocl);
        text_play.setOnClickListener(ocl);
        text_pause.setOnClickListener(ocl);
        bt_jump.setOnClickListener(ocl);
        initMediaPlayer();
    }
    
    private void initMediaPlayer(){
        mediaPlayer = MediaPlayer.create(getApplicationContext(),R.raw.song);
        mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                btn_play.setEnabled(true);
            }
        });
        mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                stop();
            }
        });
    }
    
    private void play(){
        mediaPlayer.start();
        btn_play.setEnabled(false);
        btn_pause.setEnabled(true);
        btn_stop.setEnabled(true);
    }
    
    private void pause(){
        mediaPlayer.pause();
        btn_play.setEnabled(true);
        btn_pause.setEnabled(false);
        btn_stop.setEnabled(true);
    }
    private void stop(){
        mediaPlayer.stop();
        btn_pause.setEnabled(false);
        btn_stop.setEnabled(false);
        try {
            mediaPlayer.prepare();
            mediaPlayer.seekTo(0);
            btn_play.setEnabled(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    @Override
    protected void onDestroy() {
        // activity销毁前停止播放
        super.onDestroy();
        if(btn_stop.isEnabled()){
            stop();
        }
    }
}