首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android视频流上传到php服务器?

问Android视频流上传到php服务器?
EN

Stack Overflow用户
提问于 2011-02-22 18:21:08
回答 1查看 2.2K关注 0票数 2

嗨,

任何人建议一些样本和想法将视频数据发布到服务器。我想稍后播放视频作为流视频从服务器directly.Anyone建议我如何上传流视频到php服务器和播放它作为流视频从服务器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-29 17:16:05

muniir@msn.com写道:

代码语言:javascript
复制
public class SocialHTTPPost 
{ 
    public static byte[] getCapturedImageStream(Context ctx, Intent data)
    {
        String fileName = ((MainActivity) ctx).mCaptureImageHMap.get("name").toString();
        int mid= fileName.lastIndexOf(".");
        String ext=fileName.substring(mid+1,fileName.length());

        Bundle b = data.getExtras();
        Bitmap bmp = (Bitmap) b.get("data");
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        if(ext.equalsIgnoreCase("png"))
            bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
        else if(ext.equalsIgnoreCase("jpg") || ext.equalsIgnoreCase("jpeg"))
            bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);
        byte[] bytes = stream.toByteArray();        
        return bytes;
    }

    public static void postImage(Context ctx, byte[] ba)
    {       
        String sid = ((MainActivity) ctx).mCaptureImageHMap.get("sid").toString();

        String ba1=Base64.encode(ba);
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("image",ba1));

        for (Iterator iter = ((MainActivity) ctx).mCaptureImageHMap.entrySet().iterator(); iter.hasNext();) 
        {
            Map.Entry entry = (Map.Entry) iter.next();
            String key = (String)entry.getKey();
            String value = (String)entry.getValue();
            nameValuePairs.add(new BasicNameValuePair(key, value));
        }

        try
        {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(Config.MEDIA_IMAGE_PATH + "?AddFile=AddFile&SessionId=" + sid);
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            //is = entity.getContent();
        }
        catch(Exception e)
        {
            CommonFunctions.writeLOG(ctx.getClass().toString(), e.toString());
            CommonFunctions.showToast(ctx, "Unable to post captured image file: " + e.toString());
        }       
    }

    public static byte[] getCapturedVideoStream(Context ctx, Intent data)
    {       
        try 
        {
            AssetFileDescriptor videoAsset = ctx.getContentResolver().openAssetFileDescriptor(data.getData(), "r");
            FileInputStream fis = videoAsset.createInputStream();
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            byte[] buf = new byte[1024];
            try 
            {
                for (int readNum; (readNum = fis.read(buf)) != -1;)                
                    bos.write(buf, 0, readNum);
            } 
            catch (IOException e) 
            {
                CommonFunctions.writeLOG(CacheImagesManager.class.getClass().toString(), e.toString());
            }
            byte[] bytes = bos.toByteArray();
            return bytes;
        } 
        catch (IOException e) 
        {
            CommonFunctions.writeLOG(CacheImagesManager.class.getClass().toString(), e.toString());
            return null;
        }       
    }

    public static void postVideo(Context ctx, byte[] ba)
    {       
        String sid = ((MainActivity) ctx).mCaptureVideoHMap.get("sid").toString();

        String ba1=Base64.encode(ba);
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("video",ba1));

        for (Iterator iter = ((MainActivity) ctx).mCaptureVideoHMap.entrySet().iterator(); iter.hasNext();) 
        {
            Map.Entry entry = (Map.Entry) iter.next();
            String key = (String)entry.getKey();
            String value = (String)entry.getValue();
            nameValuePairs.add(new BasicNameValuePair(key, value));
        }

        try
        {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(Config.MEDIA_VIDEO_PATH + "?AddFile=AddFile&SessionId=" + sid);
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            //HttpEntity entity = response.getEntity();
        }
        catch(Exception e)
        {
            CommonFunctions.writeLOG(ctx.getClass().toString(), e.toString());
            CommonFunctions.showToast(ctx, "Unable to post captured video file: "  + e.toString());
        }       
    }

    //  //////////////////////////////////////////  SAMPLE TEST START FOR READING WRITING IMAGES AND VIDEO BINARY

    public static boolean writeCaptureVideo(Context ctx, Intent data)
    {       
        String fileName = ((MainActivity) ctx).mCaptureImageHMap.get("name").toString();
        String sid = ((MainActivity) ctx).mCaptureImageHMap.get("sid").toString();
        String path = ""; //((MainActivity) ctx).mMediaPath;

        try 
        {
            AssetFileDescriptor videoAsset = ctx.getContentResolver().openAssetFileDescriptor(data.getData(), "r");
            FileInputStream fis = videoAsset.createInputStream();           
            File tmpFile = new File(path, fileName); 
            FileOutputStream fos = new FileOutputStream(tmpFile);
            byte[] buf = new byte[1024];
            int len;
            while ((len = fis.read(buf)) > 0) 
            {
                fos.write(buf, 0, len);
            }       
            fis.close();
            fos.close();
            return true;
        } 
        catch (IOException e) 
        {
            CommonFunctions.writeLOG(CacheImagesManager.class.getClass().toString(), e.toString());
            return false;
        }       
    }

    public static boolean writeCaptureImage(Context ctx, Intent data)
    {
        String fileName = ((MainActivity) ctx).mCaptureImageHMap.get("name").toString();
        String path = ""; //((MainActivity) ctx).mMediaPath;

        int mid= fileName.lastIndexOf(".");
        String ext=fileName.substring(mid+1,fileName.length());
        File file = new File(path, fileName);
        Uri outputFileUri = Uri.fromFile( file );
        Bundle b = data.getExtras();
        Bitmap bm = (Bitmap) b.get("data");

        try 
        {               
            if(ext.equalsIgnoreCase("png"))
                bm.compress(CompressFormat.PNG, 100, new FileOutputStream(file));
            else if(ext.equalsIgnoreCase("jpg") || ext.equalsIgnoreCase("jpeg"))
                bm.compress(CompressFormat.JPEG, 100, new FileOutputStream(file));
            try {
                Runtime.getRuntime().exec("chmod 777 " + path + "/" + fileName);
            } catch (IOException e1){}

            return true;
        } 
        catch (FileNotFoundException e) 
        {
            CommonFunctions.writeLOG(CacheImagesManager.class.getClass().toString(), e.toString());
            return false;
        }       
    }

    public static void postImage2(Context ctx)
    {
        //help site:    http://blog.sptechnolab.com/2011/03/09/android/android-upload-image-to-server/
        String fileName = ((MainActivity) ctx).mCaptureImageHMap.get("name").toString();
        String sid = ((MainActivity) ctx).mCaptureImageHMap.get("sid").toString();
        String path = ""; //((MainActivity) ctx).mMediaPath;

        int mid= fileName.lastIndexOf(".");             
        String ext=fileName.substring(mid+1,fileName.length());

        //InputStream is;
        Bitmap bitmapOrg = BitmapFactory.decodeFile(path + "/" + fileName);
        ByteArrayOutputStream bao = new ByteArrayOutputStream();

        if(ext.equalsIgnoreCase("png"))
            bitmapOrg.compress(Bitmap.CompressFormat.PNG, 100, bao);
        else if(ext.equalsIgnoreCase("jpg") || ext.equalsIgnoreCase("jpeg"))
            bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 100, bao);

        byte [] ba = bao.toByteArray();
        String ba1=Base64.encode(ba);
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("image",ba1));

        for (Iterator iter = ((MainActivity) ctx).mCaptureImageHMap.entrySet().iterator(); iter.hasNext();) 
        {
            Map.Entry entry = (Map.Entry) iter.next();
            String key = (String)entry.getKey();
            String value = (String)entry.getValue();
            nameValuePairs.add(new BasicNameValuePair(key, value));
        }       

        try
        {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(Config.MEDIA_IMAGE_PATH + "?AddFile=AddFile&SessionId=" + sid );
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            //is = entity.getContent();
        }
        catch(Exception e)
        {
            CommonFunctions.writeLOG(ctx.getClass().toString(), e.toString());
            CommonFunctions.showToast(ctx, "Unable to post captured image file: " + fileName);
        }       
    }

    //  //////////////////////////////////////////  SAMPLE TEST END
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5076870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档