any log or what error code is returned??
on quick glance,
>ret = mr->setOutputFile("/system/videoTest.mpeg");
i havent seen any support for mpeg container. try .3gp (refer
http://developer.android.com/guide/appendix/media-formats.html )
You can refer android camcorder app soruce for reference.,
http://git.omapzoom.org/?p=platform/packages/apps/Camera.git;a=blob;f=src/com/android/camera/VideoCamera.java;h=0e04e319e590efec541e010e56d80cacab9ed679;hb=HEAD#l895
<http://git.omapzoom.org/?p=platform/packages/apps/Camera.git;a=blob;f=src/com/android/camera/VideoCamera.java;h=0e04e319e590efec541e010e56d80cacab9ed679;hb=HEAD#l895>
--
Regards,
Deva
www.bittoggler.com
On Tue, Nov 16, 2010 at 4:29 PM, qin xiaofen <[email protected]> wrote:
> hi, all
>
> when I code a demo to record video, but i meet "prepare" error.
> Following is my steps:
> 1.create surface
> 2. create mediarecorder
> 3. set audio,video endec/format/output file
> 4. add surface to mediarecorder
> 5. prepare
> 6. start
>
> #define LOG_TAG "Video_Demo"
>
> #include <cutils/memory.h>
> #include <binder/IPCThreadState.h>
> #include <binder/ProcessState.h>
> #include <binder/IServiceManager.h>
>
> #include <surfaceflinger/Surface.h>
> #include <surfaceflinger/ISurfaceComposer.h>
> #include <surfaceflinger/ISurface.h>
> #include <surfaceflinger/SurfaceComposerClient.h>
> #include <camera/Camera.h>
> #include <camera/ICamera.h>
> #include <media/mediarecorder.h>
> #include <ui/Overlay.h>
> #include <camera/CameraParameters.h>
> #include <utils/Log.h>
> #include <time.h>
> #include <sys/stat.h>
> #include <fcntl.h>
>
> using namespace android;
>
>
> #define INFO(...) \
> do { \
> printf(__VA_ARGS__); \
> printf("\n"); \
> LOGD(__VA_ARGS__); \
> } while(0)
>
>
> int main ( )
> {
> int ret = 0;
> sp<ProcessState> proc(ProcessState::self());
> ProcessState::self()->startThreadPool();
>
> //sp<Camera> camera = Camera::connect();
> //camera->setPreviewCallbackFlags(FRAME_CALLBACK_FLAG_CAMERA);
> //camera->startPreview();
>
> //INFO("camera = %p\n", camera.get());
>
> sp<SurfaceComposerClient> client = new SurfaceComposerClient();
> sp<SurfaceControl> sc = client->createSurface(getpid(), 0, 320, 240,
> PIXEL_FORMAT_RGB_565, ISurfaceComposer::ePushBuffers);
> INFO("SurfaceControl = %p \n", sc.get());
> client->openTransaction();
> sc->setLayer(100000);
> //sc->setSize(640, 480);
> sc->show();
> client->closeTransaction();
> INFO("closeTransaction\n");
> sp<Surface> surface = sc->getSurface();
>
> INFO("surface = %p\n", surface.get());
>
> sp<MediaRecorder> mr = new MediaRecorder();
>
> INFO("mediacorder = %p\n", mr.get());
>
> ret = mr->init();
> if (ret != NO_ERROR)
> {
> INFO("init error\n");
> }
>
> /*
> ret = mr->setCamera(camera->remote());
> if (ret != NO_ERROR)
> {
> INFO("setCamera error\n");
> }
> */
>
> ret = mr->setAudioSource(AUDIO_SOURCE_MIC);
> if (ret != NO_ERROR)
> {
> INFO("setAudioSource error\n");
> }
>
>
> ret = mr->setVideoSource(VIDEO_SOURCE_CAMERA);
> if (ret != NO_ERROR)
> {
> INFO("setVideoSource error\n");
> }
>
>
> ret = mr->setOutputFormat(OUTPUT_FORMAT_MPEG_4);
> if (ret != NO_ERROR)
> {
> INFO("setOutputFormat error\n");
> }
>
> ret = mr->setVideoEncoder(VIDEO_ENCODER_DEFAULT);
> if (ret != NO_ERROR)
> {
> INFO("setVideoEncoder error\n");
> }
>
>
> ret = mr->setAudioEncoder(AUDIO_ENCODER_AMR_NB);
> if (ret != NO_ERROR)
> {
> INFO("setAudioEncoder error\n");
> }
> mr->setVideoSize(200, 200);
> mr->setVideoFrameRate(15);
>
>
>
> ret = mr->setPreviewSurface(surface);
> INFO("setPreviewSurface E28_MOT_PHONE = %d\n", E28_MOT_PHONE);
>
> if (ret != NO_ERROR)
> {
> INFO("setPreviewSurface error\n");
> }
>
> ret = mr->setOutputFile("/system/videoTest.mpeg");
> if (ret != NO_ERROR)
> {
> INFO("setOutputFile error\n");
> }
>
>
> ret = mr->prepare();
> if (ret != NO_ERROR)
> {
> INFO("prepare error\n");
> }
>
> ret = mr->start();
> if (ret != NO_ERROR)
> {
> INFO("start error\n");
> }
>
> sleep(15);
>
> mr->stop();
> mr->release();
>
> return 0;
> }
>
>
>
>
>
> --
> unsubscribe:
> [email protected]<android-porting%[email protected]>
> website: http://groups.google.com/group/android-porting
>
--
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting