Recording video in Android should be relatively simple. Or so I thought.
But after having wasted several days on trying to get it working, I would
like to see if anybody can understand what is wrong with my code.
This is the essential part of the relevant code (requiring Android 2.2 or
later):
camera = Camera.open();
camera.setPreviewDisplay(holder);
camera.startPreview();
mRecorder = new MediaRecorder();
camera.unlock();
mRecorder.setCamera(camera);
mRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
mRecorder.setMaxDuration(1000*60*20); // 20 minutes
videoFile = new File("/mnt/sdcard/xx/" + "XXX" + ".mp4");
mFileName = videoFile.toString();
mRecorder.setOutputFile(mFileName);
mRecorder.setMaxFileSize(1024*1024); // Max 1 MB
mRecorder.setOnInfoListener (this);
mRecorder.setOnErrorListener(this);
mRecorder.setPreviewDisplay(holder.getSurface()); // ???
try
{
mRecorder.prepare();
mRecorder.start();
}
The preview is showing properly at the screen.
The code seems to fail at the last line, when trying to start the video
recorder.
The most important lines of the debug log (from a Sony Ericsson device,
running Android 2.3.4) seem to be the following, which occur when the
attempt is made to start the recorder:
06-26 09:08:46.087: W/ServiceManager(139): Permission failure:
com.sonyericsson.permission.CAMERA_EXTENDED from uid=1013 pid=139
06-26 09:08:46.087: W/ServiceManager(139): Permission failure:
com.sonyericsson.permission.CAMERA_EXTENDED from uid=1013 pid=139
06-26 09:08:46.087: E/StagefrightRecorder(139): Failed to set the video
frame size to 1280x720
06-26 09:08:46.087: W/AACEncoder(139): Call stop() when encoder has not
started
06-26 09:08:46.097: D/kernel(131): [ 1514.405670] [adsp.c:msm_adsp_get]
module AUDREC2TASK has been registered
06-26 09:08:46.097: D/kernel(131): [ 1514.405883] [adsp.c:msm_adsp_put]
closing module AUDREC2TASK
06-26 09:08:46.097: E/MediaRecorder(1991): start failed: -2147483648
This is more of the log, in case that could be important:
06-26 09:08:35.647: W/ServiceManager(139): Permission failure:
com.sonyericsson.permission.CAMERA_EXTENDED from uid=10018 pid=1991
06-26 09:08:35.697: I/caladbolg(139): 1265769348
cald_camctrl.c (6708) 2024 P [SVR] 1265769318 +
Cald_CamCtrl_PowerUp
06-26 09:08:35.697: I/caladbolg(139): 1265769837
cald_camctrl.c (7479) 2024 P [SVR] 1265769837 +
Cald_CamCtrl_FSM_Func_PowerUp
06-26 09:08:35.717: I/caladbolg(139): 1265786530
cald_hal_qct.c (2789) 2024 P [HAL] 1265786499 +
Cald_Hal_Qct_If_PowerUp
06-26 09:08:35.717: I/caladbolg(139): 1265788758
cald_hal_qct.c (2847) 2024 P [HAL] 1265788727 -
Cald_Hal_Qct_If_PowerUp (0)
06-26 09:08:35.717: I/caladbolg(139): 1265793579
cald_camctrl.c (7557) 2024 P [SVR] 1265793579 -
Cald_CamCtrl_FSM_Func_PowerUp (0)
06-26 09:08:35.717: I/caladbolg(139): 1265793671
cald_camctrl.c (6715) 2024 P [SVR] 1265793671 -
Cald_CamCtrl_PowerUp (0)
06-26 09:08:35.727: I/WMSTS(121): >>>>>>>>>> pthread_mutex_lock() :
wmsts_mutex >>>>>>>>>>
06-26 09:08:35.727: I/WMSTS(121): >>>>>>>>>> pthread_mutex_unlock() :
wmsts_mutex >>>>>>>>>>
06-26 09:08:35.747: I/StagefrightPlayer(139):
setDataSource('/system/media/audio/ui/camera_click.ogg')
06-26 09:08:35.747: D/DrmManager(Native)(123):
DrmManager::openDecryptSession: no capable plug-in found
06-26 09:08:35.747: D/IDrmManagerService(Native)(123): NULL decryptHandle
is returned
06-26 09:08:35.747: D/IDrmManagerService(Native)(139): no decryptHandle is
generated in service side
06-26 09:08:35.757: I/StagefrightPlayer(139):
setDataSource('/system/media/audio/ui/VideoRecord.ogg')
06-26 09:08:35.767: D/DrmManager(Native)(123):
DrmManager::openDecryptSession: no capable plug-in found
06-26 09:08:35.767: D/IDrmManagerService(Native)(123): NULL decryptHandle
is returned
06-26 09:08:35.767: D/IDrmManagerService(Native)(139): no decryptHandle is
generated in service side
06-26 09:08:36.847: E/WMSTS(121): Month is invalid: 0
06-26 09:08:36.997: D/dalvikvm(269): GC_EXPLICIT freed 1544K, 36% free
7631K/11847K, external 5923K/7197K, paused 130ms
06-26 09:08:45.957: D/kernel(131): [ 1514.266204] mdp4_overlay_pipe_alloc:
pipe=80740538 ndx=5
06-26 09:08:45.957: D/kernel(131): [ 1514.266235] mpd4_overlay_req2pipe:
zorder=0 pipe_num=2
06-26 09:08:45.987: D/kernel(131): [ 1514.294281] mdp4_dtv_on: <ID=0
1280x720 (110,40,220), (5,5,20) 74MHz>
06-26 09:08:45.987: D/kernel(131): [ 1514.294311] mdp4_overlay_pipe_alloc:
pipe=80740694 ndx=6
06-26 09:08:45.987: D/kernel(131): [ 1514.294342] mpd4_overlay_req2pipe:
zorder=0 pipe_num=3
06-26 09:08:46.007: D/kernel(131): [ 1514.307952] msm_enqueue: queue event
new max is 1
06-26 09:08:46.007: D/kernel(131): [ 1514.312561] msm_enqueue: queue
control new max is 1
06-26 09:08:46.007: I/caladbolg(139): 1276075409
cald_capctrl.c (6128) 2026 P [CAP] 1276075379 +
Cald_CapCtrl_FSM_Func_StartPreview
06-26 09:08:46.007: I/caladbolg(139): 1276076416
cald_hal_qct.c (2983) 2026 P [HAL] 1276076416 +
Cald_Hal_Qct_If_StartPreview
06-26 09:08:46.017: W/kernel(131): [ 1514.328765] msm_pp_release: pp not in
progress for 0
06-26 09:08:46.047: I/caladbolg(139): 1276115815
cald_hal_qct.c (3042) 2026 P [HAL] 1276115815 -
Cald_Hal_Qct_If_StartPreview (0)
06-26 09:08:46.047: I/caladbolg(139): 1276115906
cald_hal_qct.c (6612) 2026 P [HAL] 1276115906 +
Cald_Hal_Qct_If_CreateImageConvert
06-26 09:08:46.047: I/caladbolg(139): 1276117096
cald_hal_qct.c (6890) 2026 P [HAL] 1276117066 -
Cald_Hal_Qct_If_CreateImageConvert (0)
06-26 09:08:46.047: I/caladbolg(139): 1276117127
cald_capctrl.c (6358) 2026 P [CAP] 1276117127 -
Cald_CapCtrl_FSM_Func_StartPreview
06-26 09:08:46.077: I/MediaRecorderJNI(1991): prepare: surface=0x3dce08
(identity=44)
06-26 09:08:46.087: D/kernel(131): [ 1514.397888] msm_enqueue: queue event
new max is 2
06-26 09:08:46.087: D/kernel(131): [ 1514.398040] msm_enqueue: queue event
new max is 3
06-26 09:08:46.087: D/kernel(131): [ 1514.398071] msm_enqueue: queue frame
new max is 1
06-26 09:08:46.087: D/kernel(131): [ 1514.398101] msm_enqueue: queue event
new max is 4
06-26 09:08:46.087: D/AudioHardwareMSM7X30(139):
AudioStreamInMSM72xx::standby()
06-26 09:08:46.087: D/AudioHardwareMSM7X30(139):
AudioStreamInMSM72xx::standby()
06-26 09:08:46.087: W/ServiceManager(139): Permission failure:
com.sonyericsson.permission.CAMERA_EXTENDED from uid=1013 pid=139
06-26 09:08:46.087: W/ServiceManager(139): Permission failure:
com.sonyericsson.permission.CAMERA_EXTENDED from uid=1013 pid=139
06-26 09:08:46.087: E/StagefrightRecorder(139): Failed to set the video
frame size to 1280x720
06-26 09:08:46.087: W/AACEncoder(139): Call stop() when encoder has not
started
06-26 09:08:46.097: D/kernel(131): [ 1514.405670] [adsp.c:msm_adsp_get]
module AUDREC2TASK has been registered
06-26 09:08:46.097: D/kernel(131): [ 1514.405883] [adsp.c:msm_adsp_put]
closing module AUDREC2TASK
06-26 09:08:46.097: E/MediaRecorder(1991): start failed: -2147483648
06-26 09:08:46.167: D/CustomizationProvider(855): openFile -- START
uri=content://com.sonyericsson.provider.customization/settings/com.sonyericsson.textinput.uxp
06-26 09:08:46.177: I/CustomizationProvider(855): No configuration
file:/system/etc/customization/settings/com/sonyericsson/textinput/uxp/custom_settings.xml
06-26 09:08:46.387: I/caladbolg(139): 1276455689
cald_camctrl.c (14164) 2026 P [SVR] 1276455658 +
Cald_CamCtrl_FSM_Func_FrameDoneVF
06-26 09:08:46.387: I/caladbolg(139): 1276455750
cald_camctrl.c (14174) 2026 P [SVR] 1276455750 -
Cald_CamCtrl_FSM_Func_FrameDoneVF
06-26 09:08:46.447: E/Overlay(139): Overlay is not ready to queue buffers
06-26 09:08:47.497: E/Overlay(139): Overlay is not ready to queue buffers
06-26 09:08:47.697: E/Overlay(139): Overlay is not ready to queue buffers
06-26 09:08:47.817: D/kernel(131): [ 1516.116149] msm_enqueue: queue event
new max is 5
06-26 09:08:56.737: I/WindowManager(269): Setting rotation to 1, animFlags=0
06-26 09:08:56.757: E/OverlayLIB(269): setPosition failed
06-26 09:08:56.757: I/ActivityManager(269): Config changed: { scale=1.0
imsi=242/2 loc=en_US touch=3 keys=1/1/2 nav=1/1 orien=2 layout=34 uiMode=17
heme=ComponentInfo{com.sonyericsson.defaultruntimethemes/com.sonyericsson.defaultruntimethemes.BlueThemeService}
seq=9}
06-26 09:08:56.907: D/GestureDetector(364): touchSlop:31 doubleTapSlop:191
06-26 09:08:56.957: E/OverlayLIB(269): setPosition failed
06-26 09:08:57.047: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.047: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.057: D/kernel(131): [ 1525.364349] mdp4_overlay_pipe_free:
pipe=80740538 ndx=5
06-26 09:08:57.077: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.077: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.087: D/kernel(131): [ 1525.394256] mdp4_overlay_pipe_free:
pipe=80740694 ndx=6
06-26 09:08:57.087: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.087: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.107: D/CustomizationProvider(855): openFile -- START
uri=content://com.sonyericsson.provider.customization/settings/com.sonyericsson.textinput.uxp
06-26 09:08:57.107: I/CustomizationProvider(855): No configuration
file/system/etc/customization/settings/com/sonyericsson/textinput/uxp/custom_settings.xml
06-26 09:08:57.117: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.117: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.147: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.147: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.187: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.187: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.217: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.217: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.257: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.257: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.287: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.287: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.317: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.317: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.357: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.357: E/Overlay(139): Queuebuffer failed for framebuffer 0
06-26 09:08:57.387: E/OverlayLIB(139): overlay play failed.
06-26 09:08:57.387: E/Overlay(139): Queuebuffer failed for framebuffer 0
etc., etc.
Any idea - anyone ?
Regards, Terry
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en