我也有微信朋友圈了 Android实现

2019-12-10 18:01:32丽君

          微信朋友圈,Android         

视频的录制与预览

 

package com.yzl.xyb.friends; 
 
 
import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.util.Log; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 
import android.widget.Button; 
import android.widget.Toast; 
 
import com.yzl.xyb.friends.view.MovieRecorderView; 
import com.yzl.xyb.friends.view.MovieRecorderView.OnRecordFinishListener; 
/** 
 * 录制视频 
 * @author hou 
 * 
 */ 
public class RecorderActivity extends Activity { 
 
  private MovieRecorderView mRecorderView; 
  private Button mShootBtn; 
  private boolean isFinish = true; 
  private String userId = ""; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.record_activity); 
//   userId=getIntent().getParcelableExtra("userId"); 
    mRecorderView = (MovieRecorderView) findViewById(R.id.movieRecorderView); 
    mShootBtn = (Button) findViewById(R.id.shoot_button); 
 
    mShootBtn.setOnTouchListener(new OnTouchListener() { 
 
      @Override  
      public boolean onTouch(View v, MotionEvent event) { 
        if (event.getAction() == MotionEvent.ACTION_DOWN) { 
          mRecorderView.record(new OnRecordFinishListener() { 
 
            @Override 
            public void onRecordFinish() { 
              Log.i("MotionEvent>>>","ACTION_DOWN"); 
              handler.sendEmptyMessage(1); 
            } 
          }); 
        } else if (event.getAction() == MotionEvent.ACTION_UP) { 
          Log.i("MotionEvent>>>","ACTION_UP"); 
          if (mRecorderView.getTimeCount() > 1) 
            handler.sendEmptyMessage(1); 
          else { 
            if (mRecorderView.getmVecordFile() != null) 
              mRecorderView.getmVecordFile().delete(); 
            mRecorderView.stop(); 
            Toast.makeText(RecorderActivity.this, "时间太短,录制失败", Toast.LENGTH_SHORT).show(); 
          } 
        } 
        return true;  
      } 
    }); 
  } 
 
 
  @Override 
  public void onResume() { 
    super.onResume(); 
    isFinish = true; 
  } 
 
  @Override 
  public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    isFinish = false; 
    mRecorderView.stop(); 
  } 
 
  @Override 
  public void onPause() { 
    super.onPause(); 
  } 
 
  @Override 
  public void onDestroy() { 
    super.onDestroy(); 
  } 
 
  @SuppressLint("HandlerLeak") 
  private Handler handler = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
      finishActivity(); 
      Log.i("isFinish>>>",isFinish+""); 
    } 
  }; 
 
  private void finishActivity() { 
    if (isFinish) { 
      mRecorderView.stop(); 
       
      Intent intent = new Intent(RecorderActivity.this, TopicActivity.class); 
      Bundle mBundle = new Bundle();   
      mBundle.putString("path", mRecorderView.getmVecordFile().toString());   
      mBundle.putString("userId", userId); 
      intent.putExtras(mBundle);   
      startActivity(intent);  
    }  
  }  
 
  public interface OnShootCompletionListener { 
    public void OnShootSuccess(String path, int second); 
    public void OnShootFailure(); 
  } 
}