我想将视频/图像从android手机发送到服务器,并接收处理过的视频/图像. (例如,我发送一个图像并将该图像接收为二进制图像或灰度或调整大小等)
什么是最好的,最简单的方式做到这一点的家伙? http?插座? XML?以及如何做?
我试图通过流(Shared Library not found error on android LogCat)来执行此 *** 作,但我也无法管理该如何执行.
提前致谢
解决方法:
首先,在回答问题的特定部分之前,这里有一些一般性建议:
尝试在设备上做一些琐碎的事情.仅在图像上放置遮罩或对其旋转/调整大小非常简单,可以在设备上执行.这样,用户无需上传任何内容(并等待),并且服务器的负载也不会那么重.
视频和图片可能会变得很大.考虑到这一点.我想到的一个想法是,用户应该仅上传一次图像/视频,但是应该能够执行多种 *** 作,然后再下载最终结果.否则,您将面临漫长的等待时间和高流量.
告诉您的用户!如果您真的开始将(也许是个人的)图片/视频上传到自己的服务器,请确保您使用的是可获得的最大安全性(SSL应该是必须的),并告诉用户您要将其内容上传到您的服务器.另外,您应该给他们选择拒绝的选择,否则,您可能会面临诉讼.
现在,到技术部分:
从服务器上载文件/从服务器上载文件的工作流程几乎总是相同的:
>使用Socket
打开与服务器的连接
>在文件上获取流(对于您的情况,为FileInputStream
)
>读取字节数组中的二进制数据块
>将读取的块从套接字写入输出流
>完成后,关闭流,然后关闭套接字
在您的服务器上,您可以进行其他 *** 作并从inputStream中读取内容,并将内容写入FileOutputStream
.
这是一个看起来如何的小例子:
Socket server = new Socket("192.168.178.32", 1337);OutputStream outputStream = server.getoutputStream();fileinputStream in = null;try { in = new fileinputStream("/some/path/to/gras.jpeg"); // Write to the stream: byte[] buffer = new byte[1024]; // 1KB buffer size int length = 0; while ( (length = in.read(buffer, 0, buffer.length)) != -1 ){ outputStream.write(buffer, 0, length); } outputStream.flush();} finally { if (in != null) in.close(); socket.close(); // Will close the outputStream, too.}
这段代码消除了这里可能抛出异常的事实.您需要以适当的方式处理这些问题.
您应该考虑的一点是,用户可能会通过移动互联网连接上传其内容,该内容可能会被拦截(例如,通过隧道时).在这种情况下,您将希望将up / download实现为可恢复.
总结以上是内存溢出为你收集整理的java-将图像和视频文件从android发送到服务器并接收处理全部内容,希望文章能够帮你解决java-将图像和视频文件从android发送到服务器并接收处理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)