Problem
On iOS if you playback a movie and lower volume to mute; then record a video using Titanium.Media.showCamera() and play it back the video audio cannot be heard and you have no way of turing up the volume using the device volume buttons.
This is a niche scenario but is causing issues for our enterprise client with an app that is centred around capturing video experiences on mobile. The concern is that users will think the video is broken as the audio cannot be heard when playing back / trimming the video so discard the entry.
A user should be able to turn up / down the volume within the video trimming / playback section of the Titanium.Media.showCamera() method.
Test case
Verify using the Kitchen sink app.
Playback a video using
https://github.com/appcelerator/KitchenSink/blob/master/Resources/ui/common/phone/movie_local.js and set the volume to zero using device buttons.
Then record a video using
https://github.com/appcelerator/KitchenSink/blob/master/Resources/ui/common/phone/record_video.js and play it back. You'll notice there is no audio and no ability to turn the volume up using the device buttons.
Shak,I am being asked by Dave Hudson and Dogfish what the status is for this issue. Can you please update me. Thanks, Steve
Moving this ticket to engineering as I can reproduce this issue with the KitchenSink sample. I tried setting useApplicationAudioSession to false but that did not make a difference.
After doing some testing we have confirmed this happening and reviewing the explanation from Vishal the way to prevent this from happening will be to set a volume prior to call the Ti.Media.showCamera(), a full working sample can be found at https://gist.github.com/cotaman/11060487.
Regarding the "user should be able to turn up / down the volume within the video trimming / playback section of the Titanium.Media.showCamera() method" the native behaviour of the camera uses the volume buttons to trigger the video recording.
The code posted shows the correct way to use the audio controllers and how to achieve the desire functionality, this is not a bug.
I have implemented the suggested method, seems like a hack around the issue to me. Using this solution means that every time the user opens the camera app they will see the iOS modal volume UI setting the volume to 100%. Apart from being a bad user experience for the user this also obscures any camera overlay (which we happen to use). Surely there is something better that can be done natively to support capturing and playing back of video with full volume through Titanium....
Closing ticket as "Won't Fix".