表面视图相机未保存视频

时间:2015-12-16 20:26:33

标签: android android-camera surfaceview android-mediarecorder

 private boolean prepareMediaRecorder(){
    myCamera = getCameraInstance();

    // set the orientation here to enable portrait recording.
    setCameraDisplayOrientation(this,0,myCamera);

    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));
    String pathh=Environment.getExternalStorageDirectory().getPath();
    Toast.makeText(getApplicationContext(), "Path is "+pathh,Toast.LENGTH_LONG).show();
    mediaRecorder.setOutputFile("/sdcard/myvideo1.mp4");
    //mediaRecorder.setOutputFile("/storage/sdcard0/myvideo1.mp4");
    mediaRecorder.setMaxDuration(60000); // Set max duration 60 sec.
    mediaRecorder.setMaxFileSize(50000000); // Set max file size 50Mb

mediaRecorder.setPreviewDisplay(myCameraSurfaceView.getHolder().getSurface());
    mediaRecorder.setOrientationHint(MainActivity.orientation);
    try {
        mediaRecorder.prepare();
    } catch (IllegalStateException e) {
        releaseMediaRecorder();
        return false;
    } catch (IOException e) {
        releaseMediaRecorder();
        return false;
    }
    return true;

}

我的任务是使用表面视图捕获视频并将其发送到服务器。我找到了第一个在表面捕获视频的解决方案,并使用一些堆栈溢出链接将其保存在内存中。一个在下面。

Switch To Front Camera and Back Camera Android SurfaceView

首先,应用程序启动并完美地保存了视频。然后我删除了视频然后尝试了视频没有保存在内存中。我尝试重命名该文件也没有用。

“lrwxrwxrwx”这个代码值在android中是什么意思。我在DDMS中找到了这个。

1 个答案:

答案 0 :(得分:1)

代码缺少MediaScannerConnection.scanFile,它会更新图库。代码可能是保存视频,但图库不会显示视频。重新启动手机将扫描图库,如果保存了视频,则会显示。此外,文件应用程序可能会列出视频。

如果程序正在保存视频,请在程序结尾或附近添加代码,或覆盖onPause: MediaScannerConnection.scanFile(this,new String [] {videoPathName},null,null); videoPathName是您需要设置为已保存视频的路径和名称的String。 如果仍然无效,则以下代码应该可以使用,但您仍需要添加MediaScanner:http://sandyandroidtutorials.blogspot.com/2013/05/android-video-capture-tutorial.html