您的位置:首页 > 移动开发 > Android开发

Android 录制视频并上传

2016-07-28 15:48 316 查看
一、录制视频

// 点击“录制视频”按钮

recordVideoButton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View view) {

// 将文件存到指定的路径

filePath = FILE_DIR + “xxx.mp4”;

File file = new File(filePath);

if (file.exists()) {

file.delete();

}

Uri uri = Uri.fromFile(file);

Intent intent = new Intent();

intent.setAction("android.media.action.VIDEO_CAPTURE");

intent.addCategory("android.intent.category.DEFAULT");

// 自定义输出位置,这样可以将视频存在我们指定的位置

intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); 

startActivityForResult(intent, REQUEST_VIDEO_WITH_CAMERA);

}

});

二、上传视频

// 显示视频缩略图

private void showVideoThumbail() {

this.videoView.setVisibility(View.GONE);

this.thumbailView.setVisibility(View.VISIBLE);

this.markIcon.setVisibility(View.VISIBLE);

Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(filePath,

Thumbnails.MINI_KIND);

this.thumbailView.setImageBitmap(bitmap);

this.thumbailView.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

showVideo();

}

});

}

// 播放视频

private void showVideo() {

this.videoView.setVisibility(View.VISIBLE);

this.thumbailView.setVisibility(View.GONE);

this.markIcon.setVisibility(View.GONE);

MediaController mediaController = new MediaController(this);

this.videoView.setMediaController(mediaController);

this.videoView.setVideoPath(filePath);

mediaController.setMediaPlayer(videoView);

this.videoView.requestFocus();

this.videoView.start();

}

三、上传视频

// file是要上传的文件

// contentType是类型,我这里用的是“video/mp4”

// requestURL是文件上传请求的URL

private String uploadFile(File file, String contentType, String requestURL) {

String serverResponse = null;

try {

if (!file.exists()) {

return null;

}

this.httpClient = new DefaultHttpClient();

// 为了防止文件的中文乱码问题

this.httpClient.getParams().setParameter(

CoreProtocolPNames.HTTP_CONTENT_CHARSET,

Charset.forName("utf-8"));

HttpContext httpContext = new BasicHttpContext();

HttpPost httpPost = new HttpPost(requestURL);

// 使用MultipartEntity 来上传文件,需要导入httpmime-4.1.2.jar

MultipartEntity multipartEntity = new MultipartEntity();

// 使用FileBody来传输视频

multipartEntity.addPart("data", new FileBody(file, contentType));

// 上传

httpPost.setEntity(multipartEntity);

HttpResponse response = this.httpClient.execute(httpPost, httpContext);

serverResponse = EntityUtils.toString(response.getEntity());

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (ParseException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return serverResponse;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: