¿Cómo obtener vídeo de la intención de la cámara y guardarlo en un directorio?

¿Es posible tener código similar al siguiente que hace lo mismo para video?

if (resultCode == Activity.RESULT_CANCELED) { // camera mode was canceled. } else if (resultCode == Activity.RESULT_OK) { // Took a picture, use the downsized camera image provided by default Bitmap cameraPic = (Bitmap) data.getExtras().get("data"); if (cameraPic != null) { try { savePic(cameraPic); } catch (Exception e) { Log.e(DEBUG_TAG, "saveAvatar() with camera image failed.", e); } } 

Lo que estoy tratando de hacer es poder tomar un video usando el objetivo de cámara y guardar ese video o una copia de ese video a mi directorio específico. Este es el código que tengo que tomar el clip:

 private void initTakeClip(){ Button takeClipButton = (Button) findViewById(R.id.takeClip); takeClipButton.setOnClickListener(new OnClickListener(){ public void onClick(View v){ String strVideoPrompt = "Take your Video to add to your timeline!"; Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); startActivityForResult(Intent.createChooser(cameraIntent, strVideoPrompt), TAKE_CLIP_REQUEST); } }); } 

Simplemente no sé cómo hacer para obtener ese video específico que se acaba de tomar y luego copiarlo en mi directorio sd / appname / project_name /.

Lo mismo ocurre con la obtención de la ubicación de nombre / archivo al agregar un clip ya de memoria a mi directorio:

  private void initAddClip(){ Button addClipButton = (Button) findViewById(R.id.addClip); addClipButton.setOnClickListener(new OnClickListener(){ public void onClick(View v){ String strAvatarPrompt = "Choose a picture to use as your avatar!"; Intent pickVideo = new Intent(Intent.ACTION_PICK); pickVideo.setType("video/*"); startActivityForResult(Intent.createChooser(pickVideo, strAvatarPrompt), ADD_CLIP_REQUEST); } }); } 

Cualquier / Toda la ayuda sería apreciada.

Primero lo que usted necesita hacer es conseguir el URI del onActivityResult como esto:

 private String videoPath = ""; @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Uri vid = data.getData(); videoPath = getRealPathFromURI(vid); } public String getRealPathFromURI(Uri contentUri) { String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(contentUri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } 

Entonces, una vez que tenga la ruta real almacenada como videoPath, puede almacenarla usando

 try { FileInputStream fis = openFilePath(videoPath); //this is where you set whatever path you want to save it as: File tmpFile = new File(Environment.getExternalStorageDirectory(),"VideoFile.3gp"); //save the video to the File path 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(); } catch (IOException io_e) { // TODO: handle error } 
  • Reproducir vídeo en pantalla completa en Android con reproductor de vídeo nativo
  • Cómo utilizar un solo jugador para los anuncios y el vídeo con google android Exoplayer
  • Android no puede usar hdmi en la pestaña creativa y necesita ser notificado en todos los dispositivos (máximo) tan pronto como hdmi esté conectado
  • Reproducir video local en la vista web
  • Pantalla negra en cromo para video html5 de Android
  • Android: Transmitir datos de la cámara y escribirlos en el servidor
  • Cómo actualizar Youtube Player View onItemClickListener () en un ListView
  • Android: streaming de video por servidor HTTPS local: certificado SSL rechazado
  • Cómo proporcionar datos de audio y datos de vídeo a MediaMux
  • Transferir flujo de video en tiempo real al servidor mediante Android
  • Recortar video como whatsapp
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.