Android的视频流上传到PHP服务器? [英] Android Video Stream upload to php server?

查看:101
本文介绍了Android的视频流上传到PHP服务器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,

任何人都提出了一些样品和想法发布视频数据server.I想以后播放的视频从服务器directly.Anyone流视频建议我如何流视频上传至PHP服务器和播放它作为流视频从服务器中。

Anyone suggest some sample and idea to post the video data to server.I want to playback the video later as stream video from the server directly.Anyone suggest me how to upload the stream video to php server and playback it as stream video from server.

推荐答案

muniir@msn.com写道:

muniir@msn.com wrote:

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
}

这篇关于Android的视频流上传到PHP服务器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆