Mediacapture plugin recorders
Introduction
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.
Overview
The 3 different parts to write
- Administration - You can customise the way administrators and users can configure their recorders.
- Recorder display - You can also customize the view of the recorders.
- I18n - Internationalization should be done at the same time as you're writing the other parts.
History
Mediacapture plugin exists from 2.3
Example
Template
There is a template available in [1]
File structure
- Create a folder for your recorder in moodle/repository/mediacapture/recorders e.g. moodle/repository/mediacapture/recorders/myrecorder
- Create the following files and add them to the myrecorder folder:
- lib.php, the main class will be named "repository_mediacapture_myrecorder"
- Create the language file repository_mediacapture_myrecorder.php and add it to the plugin folder, keeping the following folder structure:
- moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php
- Create module.js and styles.css (optional)
Administration APIs
Functions you *MUST* override
get_type_option_names
This function must be declared static
Return an array of string. These strings are setting names. These settings are shared by all instances.
For example:
public static function get_type_option_names() {
array('myrecorder', 'config');
}
add_config_form($mform)
This is for modifying the Moodle form displaying the recorder settings.
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:
public function add_config_form($mform) {
$mform->addElement('advcheckbox', 'myrecorder', get_string('nanogong', 'repository_mediacapture'),
null, array('group' => 1));
}
Mediacapture recorder APIs
Functions you *MUST* override
view($mform, $options)
Use this function to display the view of the recorder using the $mform (moodle form). The object code for recorders can be embedded by using the 'html' tag for $mform. The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.
With the example above, this function may look like:
public static function view($mform, $options) {
$recorderhtml = '<object></object>';
$mform->addElement('html', $recorderhtml);
$mform->addElement('hidden', 'filepath', );
$mform->addElement('hidden', 'filetype', 'xyz');
$mform->addElement('text', 'filename', get_string('name', 'repository_mediacapture'));
$mform->addElement('submit', 'save', get_string('save', 'repository_mediacapture'));
}
post_url()
Use this function when you need to post the recorded data to a file where it can be moved to a temp location in moodle (data root).
public function post_url() {
global $CFG;
return new moodle_url("$CFG->wwwroot/repository/mediacapture/recorders/myrecorder/record.php");
}
string_keys()
You may list the strings used by your plugin here.
public function string_keys() {
return array('appletnotfound', 'norecordingfound', 'nonamefound');
}
min_version()
This function will return an array structure listing the min version of various media supported by the recorder.
public function min_version() {
return array('java' => 1.5, 'flash' => 11);
}
supported_media()
This function will return list of media supported by the recorder.
public function supported_media() {
return array('audio', 'video');
}
supported_types()
This function will return list of technologies used by the recorder.
public function supported_types() {
return array('java', 'flash', 'html5');
}