Пример #1
0
 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;
 }
Пример #2
0
 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;
 }
Пример #3
0
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;
}