Index: lams_flash/src/central/flex/VideoRecorder/src/HTTPServices.as =================================================================== diff -u -rf0bef7d11b4f82936c417e6e55c25fe9bfdb9a82 -r9ee810b8edea430b976c741c310b4d7e030c560e --- lams_flash/src/central/flex/VideoRecorder/src/HTTPServices.as (.../HTTPServices.as) (revision f0bef7d11b4f82936c417e6e55c25fe9bfdb9a82) +++ lams_flash/src/central/flex/VideoRecorder/src/HTTPServices.as (.../HTTPServices.as) (revision 9ee810b8edea430b976c741c310b4d7e030c560e) @@ -65,7 +65,7 @@ videoRecorderActions.request.description = description; videoRecorderActions.request.filename = filename; - if(!allowUseCamera && allowUseVoice) + if((!allowUseCamera && allowUseVoice) || (mic && !cam)) videoRecorderActions.request.isJustSound = true; else videoRecorderActions.request.isJustSound = false; Index: lams_flash/src/central/flex/VideoRecorder/src/VideoRecorder.mxml =================================================================== diff -u -rf0bef7d11b4f82936c417e6e55c25fe9bfdb9a82 -r9ee810b8edea430b976c741c310b4d7e030c560e --- lams_flash/src/central/flex/VideoRecorder/src/VideoRecorder.mxml (.../VideoRecorder.mxml) (revision f0bef7d11b4f82936c417e6e55c25fe9bfdb9a82) +++ lams_flash/src/central/flex/VideoRecorder/src/VideoRecorder.mxml (.../VideoRecorder.mxml) (revision 9ee810b8edea430b976c741c310b4d7e030c560e) @@ -164,16 +164,29 @@ if(allowUseCamera && cam){ videoDisplay.attachCamera(cam); } - // else remove the view camera button - else{ - recordingButtonBox.removeChild(recordingButtonBox.getChildByName("viewCameraButton")); + // if not allowed to record and no cam available or if just no cam available + else if((!allowUseCamera && !cam) || !cam){ + // remove view camera amd show an alert + recordingButtonBox.removeChild(recordingButtonBox.getChildByName("viewCameraButton")); + Alert.show(dictionary.getLabel("videorecorder.camera.not.available")); + } + // just not allowed to record + else if(!allowUseCamera){ + recordingButtonBox.removeChild(recordingButtonBox.getChildByName("viewCameraButton")); + } // if the mic is to be used, set that up mic = VideoDisplayUtil.setupMic(); if(allowUseVoice && mic){ videoDisplay.attachMic(mic); } + // if no mic detected + else if(!mic){ + // pop an alert + Alert.show(dictionary.getLabel("videorecorder.mic.not.available")); + + } // if neither mic or camera are to be used if((!allowUseCamera && !allowUseVoice) || (!cam && !mic)){ Index: lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoRecorderFCKEditor.mxml =================================================================== diff -u -rf0bef7d11b4f82936c417e6e55c25fe9bfdb9a82 -r9ee810b8edea430b976c741c310b4d7e030c560e --- lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoRecorderFCKEditor.mxml (.../VideoRecorderFCKEditor.mxml) (revision f0bef7d11b4f82936c417e6e55c25fe9bfdb9a82) +++ lams_flash/src/central/flex/VideoRecorderFCKEditor/src/VideoRecorderFCKEditor.mxml (.../VideoRecorderFCKEditor.mxml) (revision 9ee810b8edea430b976c741c310b4d7e030c560e) @@ -170,17 +170,27 @@ setWebcamInfo(true); } + // set up camera cam = VideoDisplayUtil.setupCamera(); - mic = VideoDisplayUtil.setupMic(); - + if(cam){ videoDisplay.attachCamera(cam); } - + else{ + Alert.show(dictionary.getLabel("videorecorder.camera.not.available")); + } + + // set up mic + mic = VideoDisplayUtil.setupMic(); + if(mic){ videoDisplay.attachMic(mic); } + else{ + Alert.show(dictionary.getLabel("videorecorder.mic.not.available")); + } + // don't allow recording if neither cam nor mic is enabled if(!mic && !cam){ videoControlBar.recordButton.enabled = false; } @@ -202,17 +212,27 @@ setWebcamInfo(true); } + // set up camera cam = VideoDisplayUtil.setupCamera(); - mic = VideoDisplayUtil.setupMic(); - + if(cam){ videoDisplay.attachCamera(cam); } - + else{ + Alert.show(dictionary.getLabel("videorecorder.camera.not.available")); + } + + // set up mic + mic = VideoDisplayUtil.setupMic(); + if(mic){ videoDisplay.attachMic(mic); } - + else{ + Alert.show(dictionary.getLabel("videorecorder.mic.not.available")); + } + + // don't allow recording if neither cam nor mic is enabled if(!mic && !cam){ videoControlBar.recordButton.enabled = false; } Index: lams_flash/src/common/flex/org/lamsfoundation/lams/common/util/VideoDisplayUtil.as =================================================================== diff -u -r61df3f3f473a3619f93c63ceb879ae36438020e8 -r9ee810b8edea430b976c741c310b4d7e030c560e --- lams_flash/src/common/flex/org/lamsfoundation/lams/common/util/VideoDisplayUtil.as (.../VideoDisplayUtil.as) (revision 61df3f3f473a3619f93c63ceb879ae36438020e8) +++ lams_flash/src/common/flex/org/lamsfoundation/lams/common/util/VideoDisplayUtil.as (.../VideoDisplayUtil.as) (revision 9ee810b8edea430b976c741c310b4d7e030c560e) @@ -3,6 +3,8 @@ import flash.media.Camera; import flash.media.Microphone; + import mx.controls.Alert; + public class VideoDisplayUtil { public function VideoDisplayUtil() {} @@ -57,29 +59,40 @@ // gets a camera and sets it up public static function setupCamera():Camera { - // get cam - var cam:Camera = new Camera; - cam = Camera.getCamera(); + var cam:Camera; + + // if a camera exists + if(Camera.names.length != 0){ + // get the camera + cam = Camera.getCamera(); - // setting dimensions and framerate - var iFps:int = cam.fps; - cam.setMode (320, 240, iFps); + // setting dimensions and framerate + var iFps:int = cam.fps; + cam.setMode (320, 240, iFps); + + // set to minimum of 90% quality + cam.setQuality(0, 90); + } + else{ + // no camera was detected, return null + } - // set to minimum of 90% quality - cam.setQuality(0, 90); - return cam; } // sets up mic public static function setupMic():Microphone{ - // get mic - var mic:Microphone = new Microphone(); - mic = Microphone.getMicrophone(); - - // setup rate - mic.rate = 44; + var mic:Microphone; + // if a microphone exists + if(Microphone.names.length != 0){ + // get mic + mic = Microphone.getMicrophone(); + + // setup rate + mic.rate = 44; + } + return mic; }