4x 장치에서 비디오를 업로드하는 중 문제가 발생했습니다 .15 초 동안 vedio를 리디렉션하면 삼성 S2에서 30MB 파일이 생성되지만, 웹 서버에 동영상을 업로드하려고하면 D/dalvikvm (7638)과 같은 메시지가 표시됩니다. GC_FOR_ALLOC은 263K, 9 % 무료 12838K/14087K, 일시 중지 13ms, 총 13ms I/dalvikvm-heap (7638) : Grow 1,048,592 바이트 할당 D/dalvikvm (7638)에 대한 14.481MB에 힙 (파편 경우) GC_FOR_ALLOC 총 < 1K/15175K 13861K이 경우 22ms를 일시 무료 9 %, 해방 경우 22ms D/dalvikvm (7638) GC_CONCURRENT는 < 1K 해방 , 9 % 무료 13862K/15175K, 일시 중지 12ms + 2ms, 총 27msdalvikvm-heap grow heap (frag case) 비디오 업로드 중
I know it is the memory managment concept and device memory dependent but I want a real solution for it as I am stuck here from quite a few days.
Below is my code to call and upload the video to server.
public void newmethod(String Imageurl) throws ClientProtocolException, IOException
{
byte[] data ;
int bytenumber,bufferSize,bytesRead;
int maxBufferSize = 1*1024*1024;
DataOutputStream dos = null;
//File sourceFile = searchForFileInExternalStorage("video.3gp");
Log.e("in the method the path", ""+Imageurl);
FileInputStream fileInputStream = new FileInputStream(Imageurl);
bytenumber = fileInputStream.available();
Log.e("in the method the the size of the file is", ""+bytenumber);
// dos = new DataOutputStream(conn.getOutputStream());
bufferSize = Math.min(bytenumber, maxBufferSize);
data = new byte[bufferSize];
//ProgressDialog pr = new ProgressDialog(getApplicationContext());
// pr.addContentView(getCurrentFocus(), null);
// read file and write it into form...
bytesRead = fileInputStream.read(data, 0, bufferSize);
while (bytesRead > 0) {
// dos.write(data, 0, bufferSize);
bytenumber = fileInputStream.available();
bufferSize = Math.min(bytenumber, maxBufferSize);
bytesRead = fileInputStream.read(data, 0, bufferSize);
}
// pr.show();
HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost("http://67.52.165.116/Kakz/mobiles/uploadvideo");
ByteArrayBody bab = new ByteArrayBody(data, Imageurl);
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("user_video", bab);
FormBodyPart bodyPart=new FormBodyPart("title", new StringBody(title));
reqEntity.addPart(bodyPart);
bodyPart=new FormBodyPart("desc", new StringBody(description));
reqEntity.addPart(bodyPart);
bodyPart=new FormBodyPart("source", new StringBody("android"));
reqEntity.addPart(bodyPart);
postRequest.setEntity(reqEntity);
final HttpResponse response = httpClient.execute(postRequest);
// FileInputStream fileInputStream = new FileInputStream(response.getEntity().getContent());
runOnUiThread(new Runnable() {
public void run() {
//stuff that updates ui
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
} catch (IllegalStateException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String line = null;
try {
while((line = in.readLine()) != null) {
System.out.println(line);
titleText.setText("");
descriptionText.setText("");
// Toast.makeText(getApplicationContext(), "Video Uploaded successfully", Toast.LENGTH_LONG).show();
if (line.equalsIgnoreCase("Its too Heavy")) {
// pr.dismiss();
// titleText.setText("");
//descriptionText.setText("");
Toast.makeText(getApplicationContext(), "Video size is too heavy", Toast.LENGTH_LONG).show();
}
else if (line.equalsIgnoreCase("Error")) {
// pr.dismiss();
// titleText.setText("");
//descriptionText.setText("");
Toast.makeText(getApplicationContext(), "Error uploading video", Toast.LENGTH_LONG).show();
}
else if (line.equalsIgnoreCase("Uploaded")) {
//pr.dismiss();
//titleText.setText("");
//descriptionText.setText("");
Toast.makeText(getApplicationContext(), "Video uploaded successfully", Toast.LENGTH_LONG).show();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
Please let me know that how I should manage the code to get it right.
Any help would be appreciated ASAP`enter code here`
백그라운드 스레드에 업로드 ?? – Raghunandan
꽤 오랫동안 스팸 메일을받지 못하면 걱정하지 않을 것입니다. 당신은 무거운 행동을하고 있으며 단지 약간의 기억이 필요합니다. 앱은 시작부터 최소 힙 크기를 가지며 이러한 경우 증가 할 여지가 있습니다. –
@Raghunandan 예. asyntask 배경에 업로드하고 있습니다. – vyas