实例简介:
拍照、录制视频、上传、服务器配置、预览视频等功能都实现了
【实例截图】
【核心代码】
class UploadTask implements Runnable
{
@Override
public void run()
{
try
{
videoLenth = videoFile.length();// 得到文件的大小
progressDialog.setMax((int) videoLenth);// 设置精度条的最大值
System.out.println("连接之前");
String ip = StreamTool.readIP();// 从配置文件里读取Ip
Socket socket = new Socket(ip, 6789);
OutputStream outStream = socket.getOutputStream();
System.out.println("连接之后");
System.out.println(videoFile);
String head = "Content-Length=" videoFile.length()
";filename=" videoFile.getName() ";sourceid=";
System.out.println(videoFile.getName());
outStream.write(head.getBytes());
PushbackInputStream inStream = new PushbackInputStream(
socket.getInputStream());
String response = StreamTool.readLine(inStream);
System.out.println(response);
String[] items = response.split(";");
String position = items[1].substring(items[1].indexOf("=") 1);
RandomAccessFile fileOutStream = new RandomAccessFile(
videoFile, "r");
fileOutStream.seek(Integer.valueOf(position));
byte[] buffer = new byte[1024];
int len = -1;
int i = 1;
while ((len = fileOutStream.read(buffer)) != -1)
{
outStream.write(buffer, 0, len);
// if(i==10) break;
Log.i("haha", len "");
i = i len;
progressDialog.setProgress(i);
}
fileOutStream.close();
outStream.close();
inStream.close();
socket.close();
} catch (Exception e)
{
System.out.println("报错" e.getMessage());
e.printStackTrace();
} finally
{
progressDialog.dismiss();
}
}
}
}