package com.camera;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
public class CameraActivity extends Activity {
private TextView tv;
private Button camerabutton;
private ProgressBar pb;
private String uploadUrl = "http://yanshi.chinaapp.cc/service.php?action=uploadFile";
/** Called when the activity is first created. */
Handler handle = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
case 0:
tv.setText("上传成功。");
Toast.makeText(CameraActivity.this, "上传成功", Toast.LENGTH_SHORT)
.show();
pb.setVisibility(ProgressBar.INVISIBLE);
break;
case 1:
tv.setText("无可用网络。");
Toast.makeText(CameraActivity.this, "无可用网络", Toast.LENGTH_SHORT)
.show();
pb.setVisibility(ProgressBar.INVISIBLE);
break;
case 2:
tv.setText("找不到服务器地址");
Toast.makeText(CameraActivity.this, "找不到服务器地址",
Toast.LENGTH_SHORT).show();
pb.setVisibility(ProgressBar.INVISIBLE);
break;
default:
break;
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.text);
pb = (ProgressBar) findViewById(R.id.progressBar1);
camerabutton = (Button) findViewById(R.id.camerabutton);
camerabutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// MediaStore.ACTION_VIDEO_CAPTURE
// 从一个既存的Camera应用中申请视频功能的Intent动作类型
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
// MediaStore.EXTRA_VIDEO_QUALITY:这个值的范围是0~1,0的时候质量最差且文件最小,1的时候质量最高且文件最大。
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
Log.d("test", "onActivityResult() requestCode:" + requestCode
+ ",resultCode:" + resultCode + ",data:" + data);
if (resultCode == RESULT_OK) {
if (null != data) {
Uri uri = data.getData();
if (uri == null) {
return;
} else {
// 视频捕获并保存到指定的fileUri意图
Toast.makeText(this, "Video saved to:\n" + data.getData(),
Toast.LENGTH_LONG).show();
Cursor c = getContentResolver().query(uri,
new String[] { MediaStore.MediaColumns.DATA },
null, null, null);
if (c != null && c.moveToFirst()) {
tv.setText("上传中请等待......");
pb.setVisibility(View.VISIBLE);
String filPath = c.getString(0);
Log.d("test", filPath);
new Upload(filPath).start();
}
}
}
} else if (resultCode == RESULT_CANCELED) {
// 用户取消了视频捕捉
Toast.makeText(CameraActivity.this, "你取消视频录制", Toast.LENGTH_LONG)
.show();
} else {
// 视频捕捉失败,建议用户
Toast.makeText(CameraActivity.this, "视频录制失败请重新录制",
Toast.LENGTH_LONG).show();
}
}
public class Upload extends Thread {
String filpath;
public Upload(String filpath) {
super();
this.filpath = filpath;
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
ConnectionDetector cd = new ConnectionDetector(CameraActivity.this);
if (cd.isConnectingToInternet()) {
if (cd.checkURL(uploadUrl)) {
uploadVideo(CameraActivity.this, filpath);
//uploadFile(filpath);
handle.sendEmptyMessage(0);
} else {
handle.sendEmptyMessage(2);
}
} else {
handle.sendEmptyMessage(1);
}
}
}
public void uploadVideo(Context context, String videoPath) {
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(uploadUrl);
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
if(!videoPath.isEmpty()){
FileBody filebodyVideo = new FileBody(new File(videoPath));
reqEntity.addPart("uploadedfile", filebodyVideo);
}
postRequest.setEntity(reqEntity);
HttpResponse response = httpClient.execute(postRequest);
BufferedReader reader = new BufferedReader(new InputStreamReader(
response.getEntity().getContent(), "UTF-8"));
String sResponse;
StringBuilder s = new StringBuilder();
while ((sResponse = reader.readLine()) != null) {
s = s.append(sResponse);
}
Log.e("Response: ", s.toString());
} catch (Exception e) {
Log.e(e.getClass().getName(), e.getMessage());
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
android拍摄视频并上传到PHP服务器-IT计算机-毕业设计.zip (41个子文件)
android拍摄视频并上传到PHP服务器
camera(android客户端)
bin
classes.dex 43KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 2KB
camera.apk 30KB
jarlist.cache 120B
dexedLibs
httpmime-4.1.2-1072a5b2c5da49a72dab1aa7ab847c41.jar 16KB
annotations-d236945dfbf28b6ad404e4ca034ea0bf.jar 943B
annotations-e51552d4fbe0d7bd5d4bb1349e013f21.jar 943B
classes
com
camera
BuildConfig.class 329B
CameraActivity$1.class 1KB
R$layout.class 400B
R$id.class 517B
R$drawable.class 383B
CameraActivity$2.class 1KB
R$attr.class 316B
R.class 475B
CameraActivity$Upload.class 1KB
R$string.class 403B
CameraActivity.class 6KB
UploadAudioDemo.class 5KB
ConnectionDetector.class 2KB
resources.ap_ 11KB
AndroidManifest.xml 1KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
values
strings.xml 193B
drawable-mdpi
ic_launcher.png 3KB
layout
mymain.xml 824B
main.xml 859B
gen
com
camera
BuildConfig.java 152B
R.java 1KB
proguard.cfg 1KB
src
com
camera
CameraActivity.java 6KB
UploadAudioDemo.java 5KB
ConnectionDetector.java 2KB
.project 842B
.classpath 537B
project.properties 361B
AndroidManifest.xml 1KB
libs
httpmime-4.1.2.jar 26KB
共 41 条
- 1
资源评论
- xxtx10032023-05-15资源内容详尽,对我有使用价值,谢谢资源主的分享。
- 宫城良煤2023-01-23支持这个资源,内容详细,主要是能解决当下的问题,感谢大佬分享~
- 幺幺呀2022-05-14用户下载后在一定时间内未进行评价,系统默认好评。
芝麻粒儿
- 粉丝: 5w+
- 资源: 2万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功