If I set it to true, the size of the preview image can come back different from what I pass tosetPreviewSize. It depends on what size I set it to-- some aspect ratios work and some don't.
See the screenshots below-- setPreviewSize has been set to 640x480 for both, but one has setRecordingHint to true and the other to false. I have the code that produces this effect on GitHub.
Is this expected behavior? The docs for setRecordingHint don't indicate anything like this.
You need to set video-size parameter to the correct value. I had the same problem - preview size was 640x480 and the preview appeared stretched while using setRecordingHint(true). I then used getParameters().flatten() to print out all parameters set for my Camera device. Myvideo-size parameter was actually set to 1920x1080 causing the incorrect aspect ratio. You can change this parameter using params.set("video-size", "WxH"). Only then is the aspect ratio correct.
Thanks for the suggestion, I actually had to set all 3 sizes (preview, picture and video) to the same values to have it working properly on a Samsung S4 :/ This is really weird and not documented at all! –
dmarcatoApr 2 '15 at 21:16
Note that it may not work to set "video-size" if it is not an approved resolution in the "video-size-values" list. –
Daniel SmithNov 19 '15 at 23:52
i've seen a lot of random behavior around this and it unfortunately depends on the oem as well. i see a difference in framerate as well on some phones, like nexus 4 preview framerate drops in half. we depend on the preview frame callback to come at our desired framerate so we have to switch it on phone model unfortunately.
In fact on the MotoG running 4.4.2 this totally breaks video recording. You can record perhaps a single video but if you try to prepare the media recorder to record again using the the preview surface freezes and recording hangs. –
Sani ElfishawyJun 19 '14 at 1:17
I can confirm that on Nexus 4 (Android 5.0), the framerate breaks in half when disabling the recording hint. However, on many other devices it does not reduce the framerate at all (including the LG G3). –
robertDec 8 '14 at 16:37