android-webview - Android视频流上传到php服务器?

  显示原文与译文双语对照的内容
0 0

你好.

有人建议一些示例和想法将视频数据发布到 server.I 希望稍后播放视频,以便将视频从服务器 directly.Anyone 传输到服务器建议将流视频上传到服务器,并将它的作为流视频播放。

时间: 原作者:

0 0

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
}

...