public static function fetchAudioRecorderForSubmission($runtime, $assigname, $updatecontrol = "saveflvvoice", $contextid, $component, $filearea, $itemid, $timelimit = "0", $callbackjs = false) { global $CFG, $USER, $COURSE; //get our HTML5 Uploader if we have a mobile device if (self::isMobile($CFG->filter_poodll_html5rec)) { if (!self::canDoUpload()) { $ret = "<div class='mobile_os_version_warning'>" . get_string('mobile_os_version_warning', 'filter_poodll') . "</div>"; } else { $ret = fetch_HTML5RecorderForSubmission($updatecontrol, $contextid, $component, $filearea, $itemid, "audio", false, $callbackjs); } return $ret; } //Set the servername $flvserver = self::fetch_mediaserver_url(); //Set the microphone config params $micrate = $CFG->filter_poodll_micrate; $micgain = $CFG->filter_poodll_micgain; $micsilence = $CFG->filter_poodll_micsilencelevel; $micecho = $CFG->filter_poodll_micecho; $micloopback = $CFG->filter_poodll_micloopback; $micdevice = $CFG->filter_poodll_studentmic; //removed from params to make way for moodle 2 filesystem params Justin 20120213 $userid = "dummy"; $width = "350"; $height = "200"; $filename = "12345"; $poodllfilelib = $CFG->wwwroot . '/filter/poodll/poodllfilelib.php'; //If we are using course ids then lets do that //else send -1 to widget (ignore flag) if ($CFG->filter_poodll_usecourseid) { $courseid = $COURSE->id; } else { $courseid = -1; } //set up auto transcoding (mp3) or not if ($CFG->filter_poodll_audiotranscode) { $saveformat = "mp3"; } else { $saveformat = "flv"; } //If no user id is passed in, try to get it automatically //Not sure if this can be trusted, but this is only likely to be the case //when this is called from the filter. ie not from an assignment. if ($userid == "") { $userid = $USER->username; } //Stopped using this //$filename = $CFG->filter_poodll_filename; $overwritemediafile = $CFG->filter_poodll_overwrite == 1 ? "true" : "false"; if ($updatecontrol == "saveflvvoice") { $savecontrol = "<input name='saveflvvoice' type='hidden' value='' id='saveflvvoice' />"; } else { $savecontrol = ""; } //auto try ports, try 2 x on standard port, then 80, then 1935,then 80,1935 ad nauseum $autotryports = $CFG->filter_poodll_autotryports == 1 ? "yes" : "no"; //set up our params for recorder $params = array(); $params['red5url'] = urlencode($flvserver); $params['overwritefile'] = $overwritemediafile; $params['rate'] = $micrate; $params['gain'] = $micgain; $params['prefdevice'] = $micdevice; $params['loopback'] = $micloopback; $params['echosupression'] = $micecho; $params['silencelevel'] = $micsilence; $params['filename'] = "123456.flv"; $params['assigName'] = $assigname; $params['course'] = $courseid; $params['updatecontrol'] = $updatecontrol; $params['saveformat'] = $saveformat; $params['uid'] = $userid; //for file system in moodle 2 $params['poodllfilelib'] = $poodllfilelib; $params['contextid'] = $contextid; $params['component'] = $component; $params['filearea'] = $filearea; $params['itemid'] = $itemid; $params['timelimit'] = $timelimit; $params['autotryports'] = $autotryports; //fetch and merge lang params $langparams = self::filter_poodll_fetch_recorder_strings(); $params = array_merge($params, $langparams); if ($callbackjs) { $params['callbackjs'] = $callbackjs; } $returnString = self::fetchSWFWidgetCode('PoodLLAudioRecorder.lzx.swf9.swf', $params, $width, $height, '#CFCFCF'); $returnString .= $savecontrol; return $returnString; }
public function fetch_recorder() { global $USER, $CFG; $ret = ""; //we get necessary info $context = get_context_instance(CONTEXT_USER, $USER->id); $filename = 'filename' . '_' . $this->options['recording_format']; if (isMobile()) { //if(true){ switch ($this->options['recording_format']) { case self::POODLLAUDIO: case self::POODLLVIDEO: case self::MP3AUDIO: //we load up the file upload HTML5 $ret .= fetch_HTML5RecorderForSubmission($filename, $context->id, "user", "draft", "0", "video", true); break; case self::POODLLWHITEBOARD: case self::POODLLSNAPSHOT: //we load up the file upload HTML5 $ret .= fetch_HTML5RecorderForSubmission($filename, $context->id, "user", "draft", "0", "image", true); break; } //end of switch //we need a dummy M object so we can reuse module js here $ret .= "<script type='text/javascript'>"; $ret .= "var M = new Object();"; $ret .= "</script>"; //we load the poodll filter module JS for the HTML5 recording logic $ret .= "<script type=\"text/javascript\" src=\"{$CFG->wwwroot}/filter/poodll/module.js\"></script> "; //this calls the script we loaded just above, after we have a fileupload area to attach events to $ret .= "<script type='text/javascript'>"; $ret .= "M.filter_poodll.loadmobileupload(0,0);"; $ret .= "</script>"; echo $ret; return; } //end of if is mobile // $usercontextid = get_context_instance(CONTEXT_USER, $USER->id)->id; // $draftitemid=0; // $ret .= '<form name="poodll_repository" action="' . $CFG->wwwroot . '/repository/poodll/recorder.php">'; // $filename = 'filename' . '_' . $this->options['recording_format'] ; switch ($this->options['recording_format']) { case self::POODLLAUDIO: $ret .= fetchSimpleAudioRecorder('swf', 'poodllrepository', $USER->id, $filename); break; case self::POODLLVIDEO: $ret .= fetchSimpleVideoRecorder('swf', 'poodllrepository', $USER->id, $filename, '', '298', '340'); break; case self::MP3AUDIO: //this is the mp3 recorder, by Paul Nichols //$ret = $this->fetchMP3PostRecorder("filename","apic.jpg", '290','340'); //$ret = fetchMP3RecorderForRepo("filename"); //$context = get_context_instance(CONTEXT_USER, $USER->id); $ret .= fetchMP3RecorderForSubmission($filename, $context->id, "user", "draft", "0"); break; case self::POODLLWHITEBOARD: //$context = get_context_instance(CONTEXT_USER, $USER->id); $ret .= fetchWhiteboardForSubmission($filename, $context->id, "user", "draft", "0", 510, 370); break; case self::POODLLSNAPSHOT: //$context = get_context_instance(CONTEXT_USER, $USER->id); $ret .= fetchSnapshotCameraForSubmission($filename, "apic.jpg", '290', '340', $context->id, "user", "draft", "0"); break; } echo $ret; }
function fetchVideoRecorderForSubmission($runtime, $assigname, $updatecontrol = "saveflvvoice", $contextid, $component, $filearea, $itemid, $timelimit = "0", $callbackjs = false) { global $CFG, $USER, $COURSE; //head off to HTML5 logic if mobile if (isMobile($CFG->filter_poodll_html5rec)) { if (!canDoUpload()) { $ret = "<div class='mobile_os_version_warning'>" . get_string('mobile_os_version_warning', 'filter_poodll') . "</div>"; } else { $ret = fetch_HTML5RecorderForSubmission($updatecontrol, $contextid, $component, $filearea, $itemid, "video", false, $callbackjs); } return $ret; } //Set the servername and a capture settings from config file $flvserver = $CFG->poodll_media_server; $capturewidth = $CFG->filter_poodll_capturewidth; $captureheight = (string) (0.75 * intval($CFG->filter_poodll_capturewidth)); $capturefps = $CFG->filter_poodll_capturefps; $prefcam = $CFG->filter_poodll_studentcam; $prefmic = $CFG->filter_poodll_studentmic; $bandwidth = $CFG->filter_poodll_bandwidth; $picqual = $CFG->filter_poodll_picqual; //set up auto transcoding (mp4) or not if ($CFG->filter_poodll_videotranscode) { $saveformat = "mp4"; } else { $saveformat = "flv"; } //Set the microphone config params $micrate = $CFG->filter_poodll_micrate; $micgain = $CFG->filter_poodll_micgain; $micsilence = $CFG->filter_poodll_micsilencelevel; $micecho = $CFG->filter_poodll_micecho; $micloopback = $CFG->filter_poodll_micloopback; //removed from params to make way for moodle 2 filesystem params Justin 20120213 $userid = "dummy"; $filename = "12345"; $poodllfilelib = $CFG->wwwroot . '/filter/poodll/poodllfilelib.php'; switch ($assigname) { case 'poodllrepository': $width = "298"; $height = "340"; break; default: $width = "350"; $height = "400"; } //If we are using course ids then lets do that //else send -1 to widget (ignore flag) if ($CFG->filter_poodll_usecourseid) { $courseid = $COURSE->id; } else { $courseid = -1; } //If no user id is passed in, try to get it automatically //Not sure if this can be trusted, but this is only likely to be the case //when this is called from the filter. ie not from an assignment. if ($userid == "") { $userid = $USER->username; } //Stopped using this //$filename = $CFG->filter_poodll_filename; $overwritemediafile = $CFG->filter_poodll_overwrite == 1 ? "true" : "false"; if ($updatecontrol == "saveflvvoice") { $savecontrol = "<input name='saveflvvoice' type='hidden' value='' id='saveflvvoice' />"; } else { $savecontrol = ""; } //auto try ports, try 2 x on standard port, then 80, then 1935,then 80,1935 ad nauseum $autotryports = $CFG->filter_poodll_autotryports == 1 ? "yes" : "no"; $params = array(); $params['red5url'] = urlencode($flvserver); $params['overwritefile'] = $overwritemediafile; $params['rate'] = $micrate; $params['gain'] = $micgain; $params['loopback'] = $micloopback; $params['echosupression'] = $micecho; $params['silencelevel'] = $micsilence; $params['capturefps'] = $capturefps; $params['filename'] = $filename; $params['assigName'] = $assigname; $params['captureheight'] = $captureheight; $params['picqual'] = $picqual; $params['bandwidth'] = $bandwidth; $params['capturewidth'] = $capturewidth; $params['prefmic'] = $prefmic; $params['prefcam'] = $prefcam; $params['course'] = $courseid; $params['updatecontrol'] = $updatecontrol; $params['saveformat'] = $saveformat; $params['uid'] = $userid; //for file system in moodle 2 $params['poodllfilelib'] = $poodllfilelib; $params['contextid'] = $contextid; $params['component'] = $component; $params['filearea'] = $filearea; $params['itemid'] = $itemid; $params['timelimit'] = $timelimit; $params['autotryports'] = $autotryports; //callbackjs if ($callbackjs) { $params['callbackjs'] = $callbackjs; } $returnString = fetchSWFWidgetCode('PoodLLVideoRecorder.lzx.swf9.swf', $params, $width, $height, '#FFFFFF'); $returnString .= $savecontrol; return $returnString; }