mardi 4 août 2015

how to upload the video android to file zilla server

How to upload the video android to Ftp server.i have try to code of more time but does not work for me..please help me...My problem is file not found exception in client upload function how to clear this error..Please help me..

    public class MainActivity extends Activity {

    private Camera myCamera;
    private MyCameraSurfaceView myCameraSurfaceView;
    private MediaRecorder mediaRecorder;
    String sourceFileUri;
    Button myButton;
    SurfaceHolder surfaceHolder;
    boolean recording;
    /********* work only for Dedicated IP ***********/
    static final String FTP_HOST = "upload.com";

    /********* FTP USERNAME ***********/
    static final String FTP_USER = "users";

    /********* FTP PASSWORD ***********/
    static final String FTP_PASS = "12345";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        recording = false;

        setContentView(R.layout.activity_main);

        // Get Camera for preview
        myCamera = getCameraInstance();
        myCamera.setDisplayOrientation(90);
        if (myCamera == null) {
            Toast.makeText(MainActivity.this, "Fail to get Camera",
                    Toast.LENGTH_LONG).show();
        }

        myCameraSurfaceView = new MyCameraSurfaceView(this, myCamera);
        RelativeLayout myCameraPreview = (RelativeLayout) findViewById(R.id.relative);
        myCameraPreview.addView(myCameraSurfaceView);

        myButton = (Button) findViewById(R.id.btn_capture);
        myButton.setOnClickListener(myButtonOnClickListener);
    }

    Button.OnClickListener myButtonOnClickListener = new Button.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (recording) {

                // stop recording and release camera
                mediaRecorder.stop(); // stop the recording
                Log.e("mediastop", "" + mediaRecorder);

                Toast.makeText(MainActivity.this, "Video captured!",
                        Toast.LENGTH_LONG).show();


                doFileUpload();
            //  Log.e("fileupload", "" + f);
                releaseMediaRecorder(); // release the MediaRecorder object

                recording = false;

                // Exit after saved
                // finish();
            } else {

                // Release Camera before MediaRecorder start
                releaseCamera();

                if (!prepareMediaRecorder()) {
                    Toast.makeText(MainActivity.this,
                            "Fail in prepareMediaRecorder()!\n - Ended -",
                            Toast.LENGTH_LONG).show();
                    finish();
                }

                mediaRecorder.start();
                Toast.makeText(MainActivity.this, "Start Recording..",
                        Toast.LENGTH_LONG).show();

                recording = true;
                // myButton.setText("STOP");
            }
        }
    };

    private Camera getCameraInstance() {
        // TODO Auto-generated method stub
        Camera c = null;
        try {
            c = Camera.open(); // attempt to get a Camera instance
        } catch (Exception e) {
            // Camera is not available (in use or does not exist)
        }
        return c; // returns null if camera is unavailable
    }

    private File getOutputMediaFile() {
        // To be safe, you can check that the SDCard is mounted
        // using Environment.getExternalStorageState() before doing this.

        File mediaStorageDir = new File(Environment.getExternalStorageDirectory().getPath().toString()+ "/gg/");

        // Create the storage directory if it does not exist
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                Log.d("CameraApp", "failed to create directory");
                return null;
            }
        }

        // Create a media file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
                .format(new Date());
        File mediaFile;
        mediaFile = new File(mediaStorageDir.getPath()  /*File.separator
                */+ "VID_" + timeStamp + ".mp4");
        Log.e("mediafile", "" + mediaFile);
        return mediaFile;
    }

    private boolean prepareMediaRecorder() {
        myCamera = getCameraInstance();
        myCamera.setDisplayOrientation(90);
        mediaRecorder = new MediaRecorder();

        myCamera.unlock();
        mediaRecorder.setCamera(myCamera);

        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
        mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

        mediaRecorder.setProfile(CamcorderProfile
                .get(CamcorderProfile.QUALITY_HIGH));
        mediaRecorder.setOrientationHint(90);
        mediaRecorder.setOutputFile(getOutputMediaFile().getPath());
        Log.e("mediarecorder", "" + mediaRecorder);
        mediaRecorder.setMaxDuration(60000); // Set max duration 60 sec.
        mediaRecorder.setMaxFileSize(5000000); // Set max file size 5M
        /*
         * try {
         * 
         * doFileUpload();
         * 
         * } catch (ParseException e) { // TODO Auto-generated catch block
         * e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated
         * catch block e.printStackTrace(); }
         */
        mediaRecorder.setPreviewDisplay(myCameraSurfaceView.getHolder()
                .getSurface());

        try {
            mediaRecorder.prepare();
        } catch (IllegalStateException e) {
            releaseMediaRecorder();
            return false;
        } catch (IOException e) {
            releaseMediaRecorder();
            return false;
        }
        return true;

    }

    public void doFileUpload() {
        if (android.os.Build.VERSION.SDK_INT > 16) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                    .permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }
    //  File f = new File(""+getOutputMediaFile().getPath());
        //Log.e("f", "" + f);

        Uri uri = Uri.parse(""+getOutputMediaFile().getPath());
        Log.e("uri",""+uri);
        File filename = new File(uri.getPath());
        Log.e("filename",""+filename);
        // File fis=fileName;
        // Log.e("fis",""+fis);
        FTPClient client = new FTPClient();

        try {

            client.connect(FTP_HOST,21);
            Log.e("clientconnect", "" + client);
            client.login(FTP_USER, FTP_PASS);
            Log.e("clientlogin", "" + client);
            client.setType(FTPClient.TYPE_BINARY);
            Log.e("clienttype", "" + client);
            client.changeDirectory("/gg/");
            Log.i("", "$$$$$$$$$$$$$$$$$" + ("/gg/"));
        //  int reply = client.getReplyCode();

            client.setPassive(true);
            Log.e("clientpassive", "" + client);
            client.noop();
            //client.setAutoNoopTimeout( 30000);
            Log.e("clientnoop", "" + client);
            client.upload(filename,new MyTransferListener());
            Log.e("filenameupload", "" + filename);
            Log.e("clientupload", "" + client);
            // Log.e("file",""+fileName);
            Toast.makeText(getBaseContext(), " transferred ..." + client,
                    Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            e.printStackTrace();
            try {
                client.disconnect(true);
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }

    }

    public class MyTransferListener implements FTPDataTransferListener {

        public void started() {

            // btn.setVisibility(View.GONE);
            // Transfer started
            Toast.makeText(getBaseContext(), " Upload Started ...",
                    Toast.LENGTH_SHORT).show();
            // System.out.println(" Upload Started ...");
        }

        public void transferred(int length) {

            // Yet other length bytes has been transferred since the last time
            // this
            // method was called
            Toast.makeText(getBaseContext(), " transferred ..." + length,
                    Toast.LENGTH_SHORT).show();
            // System.out.println(" transferred ..." + length);
        }

        public void completed() {

            // btn.setVisibility(View.VISIBLE);
            // Transfer completed

            Toast.makeText(getBaseContext(), " completed ...",
                    Toast.LENGTH_SHORT).show();
            // System.out.println(" completed ..." );
        }

        public void aborted() {

            // btn.setVisibility(View.VISIBLE);
            // Transfer aborted
            Toast.makeText(getBaseContext(),
                    " transfer aborted , please try again...",
                    Toast.LENGTH_SHORT).show();
            // System.out.println(" aborted ..." );
        }

        public void failed() {

            // btn.setVisibility(View.VISIBLE);
            // Transfer failed
            System.out.println(" failed ...");
        }
        // Jibble.
    }


    @Override
    protected void onPause() {
        super.onPause();
        releaseMediaRecorder(); // if you are using MediaRecorder, release it
                                // first
        releaseCamera(); // release the camera immediately on pause event
    }

    private void releaseMediaRecorder() {
        if (mediaRecorder != null) {
            mediaRecorder.reset(); // clear recorder configuration
            mediaRecorder.release(); // release the recorder object
            mediaRecorder = null;
            myCamera.lock(); // lock camera for later use
        }
    }

    private void releaseCamera() {
        if (myCamera != null) {
            myCamera.release(); // release the camera for other applications
            myCamera = null;
        }
    }

    public class MyCameraSurfaceView extends SurfaceView implements
            SurfaceHolder.Callback {

        private SurfaceHolder mHolder;
        private Camera mCamera;

        public MyCameraSurfaceView(Context context, Camera camera) {
            super(context);
            mCamera = camera;
            // Install a SurfaceHolder.Callback so we get notified when the
            // underlying surface is created and destroyed.
            mHolder = getHolder();
            mHolder.addCallback(this);
            // deprecated setting, but required on Android versions prior to 3.0
            mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        }

        @Override
        public void surfaceChanged(SurfaceHolder holder, int format,
                int weight, int height) {
            // If your preview can change or rotate, take care of those events
            // here.
            // Make sure to stop the preview before resizing or reformatting it.

            if (mHolder.getSurface() == null) {
                // preview surface does not exist
                return;
            }

            // stop preview before making changes
            try {
                mCamera.stopPreview();
            } catch (Exception e) {
                // ignore: tried to stop a non-existent preview
            }

            // make any resize, rotate or reformatting changes here

            // start preview with new settings
            try {
                mCamera.setPreviewDisplay(mHolder);
                mCamera.startPreview();

            } catch (Exception e) {
            }
        }

        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            // TODO Auto-generated method stub
            // The Surface has been created, now tell the camera where to draw
            // the preview.
            try {
                mCamera.setPreviewDisplay(holder);
                mCamera.startPreview();
            } catch (IOException e) {
            }
        }

        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            // TODO Auto-generated method stub

        }
    }
}

Aucun commentaire:

Enregistrer un commentaire