【问题标题】:Send image and videos files from android to a server and receive processed将图像和视频文件从 android 发送到服务器并接收处理
【发布时间】:2012-06-30 15:43:33
【问题描述】:

我想将视频/图像从 android 手机发送到服务器并接收处理后的视频/图像。 (例如,我发送一个图像并将该图像接收为二进制图像或灰度或调整大小等) 伙计们,最好和最简单的方法是什么?网址?插座? XML?又该怎么做呢?

我试图通过流 (Shared Library not found error on android LogCat) 进行操作,但我也无法管理如何操作。

提前致谢

【问题讨论】:

    标签: java android sockets image-processing


    【解决方案1】:

    首先,在回答您问题的特定部分之前,这里有一些一般性建议:

    尝试在设备上做一些琐碎的事情。 只需在图像上放置蒙版或旋转/调整图像大小非常简单,并且可以在设备上执行。这样,用户无需上传任何内容(等待),您的服务器也不会那么重。

    视频和图片可以变大。考虑到这一点。想到的一个想法是,用户应该只上传一次图像/视频,但应该能够在下载最终结果之前执行多次操作。否则,您最终将面临漫长的等待时间和高流量。

    告诉您的用户!如果您真的开始将(可能是个人的)图片/视频上传到您自己的服务器,请确保您使用可以获得的最大安全性(SSL 应该是必须的-有)并告诉您的用户您会将他们的内容上传到您的服务器。此外,您应该让他们选择拒绝,否则您可能会面临诉讼。


    现在,到它的技术部分:

    从服务器上传/下载文件的工作流程几乎总是相同的:

    • 使用Socket 打开到您的服务器的连接
    • 在您的文件中获取流(在您的情况下为FileInputStream
    • 读取byte-array 中的二进制数据块
    • 将读取的块写入 Socket 的输出流中
    • 完成后,关闭流,然后关闭套接字

    在您的服务器上,您可以反过来从 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.
    }
    

    此代码忽略了此处可能引发异常的事实。您需要以适当的方式处理这些问题。


    您应该考虑的一点是,用户可能会从移动互联网连接上传他们的内容,这些内容可能会被拦截(例如通过隧道时)。在这种情况下,您需要将上传/下载实现为可恢复。

    【讨论】:

    • 感谢您的回复。您的示例,客户端发送图像,它如何接收处理后的图像?发送图像后是否必须打开服务器才能监听连接?
    • 由于处理大视频文件可能需要一些时间(例如),您可能希望使用一些 Cloud2Device 通信来推送处理完成时间的通知。以Google GCM 为例。
    猜你喜欢
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 2013-11-25
    相关资源
    最近更新 更多