停止后不久上传录制的视频

时间:2017-10-25 17:03:31

标签: android button video server

我想将视频上传到服务器。我的下面的代码记录并保存了视频,但是我想让它在我按下停止按钮后立即上传录制的视频。

例如,在Instagram或Whatsapp上,相机会录制视频,停止播放时会向我们提供上传按钮。那我怎么能实现呢?

MainActivity .java

   public class  MainActivity extends Activity {
    private static int CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE  ;
    private TextView output;

    /**
     * Called when the activity is first created.
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_main );



        Button buttonRecording = (Button) findViewById( R.id.s );
        output = (TextView) findViewById( R.id.output );

        buttonRecording.setOnClickListener( new Button.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                // create new Intentwith with Standard Intent action that can be
                // sent to have the camera application capture an video and return it.
                Intent intent = new Intent( MediaStore.ACTION_VIDEO_CAPTURE );

                // create a file to save the video
                Uri fileUri = getOutputMediaFileUri( MEDIA_TYPE_VIDEO );

                // set the image file name
                intent.putExtra( MediaStore.EXTRA_OUTPUT, fileUri );

                // set the video image quality to high
                intent.putExtra( MediaStore.EXTRA_VIDEO_QUALITY, 1 );

                // start the Video Capture Intent
                startActivityForResult( intent, CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE );

            }
        } );
    }

    /**
     * Create a file Uri for saving an image or video
     */
    private Uri getOutputMediaFileUri(int type) {

        return Uri.fromFile( getOutputMediaFile( type ) );
    }

    /**
     * Create a File for saving an image or video
     */
    private File getOutputMediaFile(int type) {

        // Check that the SDCard is mounted
        File mediaStorageDir = new File( Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_MOVIES ), "Danger Escape Videos" );


        // Create the storage directory(MyCameraVideo) if it does not exist
        if (!mediaStorageDir.exists()) {

            if (!mediaStorageDir.mkdirs()) {

                output.setText( "Failed to create directory MyCameraVideo." );

                Toast.makeText( getApplicationContext(), "Failed to create directory MyCameraVideo.",
                        Toast.LENGTH_LONG ).show();

                Log.d( "MyCameraVideo", "Failed to create directory MyCameraVideo." );
                return null;
            }
        }


        // Create a media file name

        // For unique file name appending current timeStamp with file name
        java.util.Date date = new java.util.Date();
        String timeStamp = new SimpleDateFormat( "yyyyMMdd_HHmmss" )
                .format( date.getTime() );

        File mediaFile;

        if (type == MEDIA_TYPE_VIDEO) {

            // For unique video file name appending current timeStamp with file name
            mediaFile = new File( mediaStorageDir.getPath() + File.separator +
                    "VID_" + timeStamp + ".mp4" );

        } else {
            return null;
        }

        return mediaFile;
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        // After camera screen this code will excuted

        if (requestCode == CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE) {

            if (resultCode == RESULT_OK) {

                output.setText( "Video File : " + data.getData() );

                // Video captured and saved to fileUri specified in the Intent
                Toast.makeText( this, "Video saved to:" +
                        data.getData(), Toast.LENGTH_LONG ).show();

            } else if (resultCode == RESULT_CANCELED) {

                output.setText( "User cancelled the video capture." );

                // User cancelled the video capture
                Toast.makeText( this, "User cancelled the video capture.",
                        Toast.LENGTH_LONG ).show();

            } else {

                output.setText( "Video capture failed." );

                // Video capture failed, advise user
                Toast.makeText( this, "Video capture failed.",
                        Toast.LENGTH_LONG ).show();
            }
        }
    }
}

0 个答案:

没有答案