package cn.mutils.app.media; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; import android.provider.MediaStore.Video.VideoColumns; import java.io.File; import cn.mutils.app.ui.core.IActivityExecutor; import cn.mutils.core.event.IListener; public class MakeVideoTask extends MediaTask { public static interface MakeVideoListener extends IListener { public void onComplete(Uri uri); } public MakeVideoTask(IActivityExecutor executor, int requestCode) { super(executor, requestCode); } public boolean makeVideo() { if (mLocked) { return false; } Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); mExecutor.startActivityForResult(intent, mRequestCode); mExecutor.addOnActivityResultListener(mOnActivityResultListener); mLocked = true; return true; } public void setListener(MakeVideoListener listener) { super.setListener(listener); } @Override protected void onActivityResult(Context context, int requestCode, int resultCode, Intent data) { if (resultCode != Activity.RESULT_OK) { return; } Cursor cursor = mExecutor.getContext().getContentResolver().query(data.getData(), null, null, null, null); if (cursor == null || !cursor.moveToNext()) { return; } String path = cursor.getString(cursor.getColumnIndex(VideoColumns.DATA)); MakeVideoListener listener = getListener(MakeVideoListener.class); if (listener != null) { listener.onComplete(Uri.fromFile(new File(path))); } } }