Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Mediacapture plugin recorders

From MoodleDocs
Revision as of 04:03, 9 August 2012 by Ankit Gupta (talk | contribs)

Introduction

Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.

Overview

The 3 different parts to write

  1. Administration - You can customise the way administrators and users can configure their recorders.
  2. Recorder display - You can also customize the view of the recorders.
  3. I18n - Internationalization should be done at the same time as you're writing the other parts.

History

Mediacapture plugin exists from Moodle 2.3

Example

Template

There is a template available in [1]

File structure

  1. Create a folder for your recorder in moodle/repository/mediacapture/recorders e.g. moodle/repository/mediacapture/recorders/myrecorder
  2. Create the following files and add them to the myrecorder folder:
    • lib.php, the main class will be named "repository_mediacapture_myrecorder"
  3. 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
  4. 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 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');

}

temp_dir()

This function returns the temp directory where recorders should upload their files.

public function temp_dir() {

   global $USER;
   return make_temp_directory('repository/mediacapture/' . $USER->id);

}

See also