【问题标题】:Android Video Stream upload to php server?Android 视频流上传到 php 服务器?
【发布时间】:2011-02-22 10:21:08
【问题描述】:

嗨,

任何人都建议一些示例和想法将视频数据发布到服务器。我想稍后将视频作为流视频直接从服务器播放。有人建议我如何将流视频上传到 php 服务器并将其作为流视频播放来自服务器。

【问题讨论】:

    标签: android android-webview android-video-player


    【解决方案1】:

    muniir@msn.com 写道:

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多