andriod视频上传php,Android大视频上传到服务器?

Android大视频上传到php服务器,我在stackoverflow中阅读了很多答案.

我尝试了它,但是即使使用setChunkedStreamingMode()也无法为我工作.当我上传视频时,它给了我OutOfMemoryError

当我录制视频5秒钟时,效果很好,但是由于OutOfMemoryError而导致8或10秒钟以上的视频应用程序强制关闭

我的代码::

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(getString(R.string.login_url)

+ "uploadvideo");

HttpResponse response = null;

InputStream inputStream = getContentResolver().openInputStream(

Uri.fromFile(myFile));

byte[] data = IOUtils.toByteArray(inputStream);

String type = getFileExtension(myFile.getName().toString());

String encodeurl = Base64.encodeBytes(data);

try {

List nameValuePairs = new ArrayList(

6);

nameValuePairs.add(new BasicNameValuePair("returnformat",

"json"));

nameValuePairs.add(new BasicNameValuePair("userid",

strUserid));

nameValuePairs.add(new BasicNameValuePair("video",

data.toString()));

nameValuePairs.add(new BasicNameValuePair("type", type));

nameValuePairs.add(new BasicNameValuePair("title",

strVideoName));

nameValuePairs.add(new BasicNameValuePair("description",

strVideoComments));

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// Execute HTTP Post Request

response = httpclient.execute(httppost);

System.out.println(">>>>>>>>>>" + response.toString());

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

我需要使用Base64编码的String上传视频.我知道由于内存多于Heap-size而导致的内存错误.但是我无法上传视频.

logcat的

05-31 23:16:12.114: E/AndroidRuntime(17255): java.lang.RuntimeException: An error occured while executing doInBackground()

05-31 23:16:12.114: E/AndroidRuntime(17255): at android.os.AsyncTask$3.done(AsyncTask.java:200)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.util.concurrent.FutureTask.setException(FutureTask.java:125)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.util.concurrent.FutureTask.run(FutureTask.java:138)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.lang.Thread.run(Thread.java:1027)

05-31 23:16:12.114: E/AndroidRuntime(17255): Caused by: java.lang.OutOfMemoryError: (Heap Size=20103KB, Allocated=15700KB, Bitmap Size=0KB)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.nio.CharArrayBuffer.(CharArrayBuffer.java:43)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.nio.ReadWriteCharArrayBuffer.(ReadWriteCharArrayBuffer.java:47)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.nio.BufferFactory.newCharBuffer(BufferFactory.java:82)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.nio.CharBuffer.allocate(CharBuffer.java:53)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.nio.charset.CharsetDecoder.allocateMore(CharsetDecoder.java:261)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:218)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.nio.charset.Charset.decode(Charset.java:488)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.lang.String.(String.java:181)

05-31 23:16:12.114: E/AndroidRuntime(17255): at java.lang.String.(String.java:141)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值