<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ankitdbst</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ankitdbst"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/Special:Contributions/Ankitdbst"/>
	<updated>2026-11-05T05:36:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34934</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34934"/>
		<updated>2012-08-18T01:23:22Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* temp_dir() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Following recorders are examples of recorders used by mediacapture repository plugin for demonstration of recording within Moodle. I am grateful to the authors for their support in allowing me to use these recorders within mediacapture.&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Add the language strings used by the recorders to the mediacapture/lang/ dir.&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
Use this function when you need to post the recorded data (via ajax) to a file where it can be moved to a temp location in moodle (data root).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_mediatypes()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_mediatypes() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_filetype()====&lt;br /&gt;
This function will return string of supported filetype associated with the recording.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_filetype() {&lt;br /&gt;
    return &#039;.wmv&#039;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions you *MAY* override===&lt;br /&gt;
&lt;br /&gt;
====temp_dir()====&lt;br /&gt;
This function returns the temp directory where recorders should upload their temp files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function temp_dir() {&lt;br /&gt;
    global $USER;&lt;br /&gt;
    return make_temp_directory(&#039;repository/mediacapture/&#039; . $USER-&amp;gt;id);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34933</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34933"/>
		<updated>2012-08-18T01:21:55Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* post_url() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Following recorders are examples of recorders used by mediacapture repository plugin for demonstration of recording within Moodle. I am grateful to the authors for their support in allowing me to use these recorders within mediacapture.&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Add the language strings used by the recorders to the mediacapture/lang/ dir.&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
Use this function when you need to post the recorded data (via ajax) to a file where it can be moved to a temp location in moodle (data root).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_mediatypes()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_mediatypes() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_filetype()====&lt;br /&gt;
This function will return string of supported filetype associated with the recording.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_filetype() {&lt;br /&gt;
    return &#039;.wmv&#039;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions you *MAY* override===&lt;br /&gt;
&lt;br /&gt;
====temp_dir()====&lt;br /&gt;
This function returns the temp directory where recorders should upload their files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function temp_dir() {&lt;br /&gt;
    global $USER;&lt;br /&gt;
    return make_temp_directory(&#039;repository/mediacapture/&#039; . $USER-&amp;gt;id);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34829</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34829"/>
		<updated>2012-08-15T01:57:07Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Following recorders are examples of recorders used by mediacapture repository plugin for demonstration of recording within Moodle. I am grateful to the authors for their support in allowing me to use these recorders within mediacapture.&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Add the language strings used by the recorders to the mediacapture/lang/ dir.&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_mediatypes()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_mediatypes() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_filetype()====&lt;br /&gt;
This function will return string of supported filetype associated with the recording.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_filetype() {&lt;br /&gt;
    return &#039;.wmv&#039;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions you *MAY* override===&lt;br /&gt;
&lt;br /&gt;
====temp_dir()====&lt;br /&gt;
This function returns the temp directory where recorders should upload their files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function temp_dir() {&lt;br /&gt;
    global $USER;&lt;br /&gt;
    return make_temp_directory(&#039;repository/mediacapture/&#039; . $USER-&amp;gt;id);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34695</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34695"/>
		<updated>2012-08-10T03:47:38Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Following recorders are examples of recorders used by mediacapture repository plugin for demonstration of recording within Moodle. They are not developed by me. I am grateful to the authors for their support in allowing me to use these recorders within mediacapture.&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Add the language strings used by the recorders to the mediacapture/lang/ dir.&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_mediatypes()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_mediatypes() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_filetype()====&lt;br /&gt;
This function will return string of supported filetype associated with the recording.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_filetype() {&lt;br /&gt;
    return &#039;.wmv&#039;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions you *MAY* override===&lt;br /&gt;
&lt;br /&gt;
====temp_dir()====&lt;br /&gt;
This function returns the temp directory where recorders should upload their files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function temp_dir() {&lt;br /&gt;
    global $USER;&lt;br /&gt;
    return make_temp_directory(&#039;repository/mediacapture/&#039; . $USER-&amp;gt;id);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34694</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34694"/>
		<updated>2012-08-10T03:46:07Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* supported_types() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Following recorders are examples of recorders used by mediacapture repository plugin for demonstration of recording within Moodle. They are not developed by me. I am grateful to the authors for their support in allowing me to use these recorders within mediacapture.&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Add the language strings used by the recorders to the mediacapture/lang/ dir.&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_mediatypes() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions you *MAY* override===&lt;br /&gt;
&lt;br /&gt;
====temp_dir()====&lt;br /&gt;
This function returns the temp directory where recorders should upload their files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function temp_dir() {&lt;br /&gt;
    global $USER;&lt;br /&gt;
    return make_temp_directory(&#039;repository/mediacapture/&#039; . $USER-&amp;gt;id);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34693</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34693"/>
		<updated>2012-08-10T03:45:42Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* File structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Following recorders are examples of recorders used by mediacapture repository plugin for demonstration of recording within Moodle. They are not developed by me. I am grateful to the authors for their support in allowing me to use these recorders within mediacapture.&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Add the language strings used by the recorders to the mediacapture/lang/ dir.&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions you *MAY* override===&lt;br /&gt;
&lt;br /&gt;
====temp_dir()====&lt;br /&gt;
This function returns the temp directory where recorders should upload their files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function temp_dir() {&lt;br /&gt;
    global $USER;&lt;br /&gt;
    return make_temp_directory(&#039;repository/mediacapture/&#039; . $USER-&amp;gt;id);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=34683</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=34683"/>
		<updated>2012-08-09T04:20:25Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Coding Period&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=202632#p883953 Forum - Post]&lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
&lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
&lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. The video recording applet would allow recording videos in mp4 format (H.264 video and AAC audio) on the web page and upload it on the web server via HTTP. I would be using the Java Media Framework (JMF) to capture the audio and video stream.&lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May) :&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) :&lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;br /&gt;
=== Developer Blog ===&lt;br /&gt;
* [http://ankitgupta90.tumblr.com/ # Ankit Gupta]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=34682</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=34682"/>
		<updated>2012-08-09T04:20:08Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Coding Period&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=202632#p883953 Forum - Post]&lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
|Mentor = Rajesh Taneja}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
&lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
&lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. The video recording applet would allow recording videos in mp4 format (H.264 video and AAC audio) on the web page and upload it on the web server via HTTP. I would be using the Java Media Framework (JMF) to capture the audio and video stream.&lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May) :&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) :&lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;br /&gt;
=== Developer Blog ===&lt;br /&gt;
* [http://ankitgupta90.tumblr.com/ # Ankit Gupta]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=34681</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=34681"/>
		<updated>2012-08-09T04:18:35Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Coding Period&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=202632#p883953 Forum - Post]&lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
|mentor = Rajesh Taneja}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
&lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
&lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. The video recording applet would allow recording videos in mp4 format (H.264 video and AAC audio) on the web page and upload it on the web server via HTTP. I would be using the Java Media Framework (JMF) to capture the audio and video stream.&lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May) :&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) :&lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;br /&gt;
=== Developer Blog ===&lt;br /&gt;
* [http://ankitgupta90.tumblr.com/ # Ankit Gupta]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34680</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34680"/>
		<updated>2012-08-09T04:15:34Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Following recorders are examples of recorders used by mediacapture repository plugin for demonstration of recording within Moodle. They are not developed by me. I am grateful to the authors for their support in allowing me to use these recorders within mediacapture.&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions you *MAY* override===&lt;br /&gt;
&lt;br /&gt;
====temp_dir()====&lt;br /&gt;
This function returns the temp directory where recorders should upload their files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function temp_dir() {&lt;br /&gt;
    global $USER;&lt;br /&gt;
    return make_temp_directory(&#039;repository/mediacapture/&#039; . $USER-&amp;gt;id);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34679</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34679"/>
		<updated>2012-08-09T04:15:08Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Following recorders are examples of recorders used by mediacapture repository plugin for demonstration of recording within Moodle. They are not developed by me. I am grateful to the authors for their support in allowing me to use their recorders within mediacapture.&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions you *MAY* override===&lt;br /&gt;
&lt;br /&gt;
====temp_dir()====&lt;br /&gt;
This function returns the temp directory where recorders should upload their files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function temp_dir() {&lt;br /&gt;
    global $USER;&lt;br /&gt;
    return make_temp_directory(&#039;repository/mediacapture/&#039; . $USER-&amp;gt;id);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34678</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34678"/>
		<updated>2012-08-09T04:04:01Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions you *MAY* override===&lt;br /&gt;
&lt;br /&gt;
====temp_dir()====&lt;br /&gt;
This function returns the temp directory where recorders should upload their files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function temp_dir() {&lt;br /&gt;
    global $USER;&lt;br /&gt;
    return make_temp_directory(&#039;repository/mediacapture/&#039; . $USER-&amp;gt;id);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34677</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34677"/>
		<updated>2012-08-09T04:03:04Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====temp_dir()====&lt;br /&gt;
This function returns the temp directory where recorders should upload their files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function temp_dir() {&lt;br /&gt;
    global $USER;&lt;br /&gt;
    return make_temp_directory(&#039;repository/mediacapture/&#039; . $USER-&amp;gt;id);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34676</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34676"/>
		<updated>2012-08-09T03:55:56Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* view($mform, $options) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34672</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34672"/>
		<updated>2012-08-09T03:47:11Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from Moodle 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34671</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34671"/>
		<updated>2012-08-09T03:32:39Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
*[https://docs.moodle.org/dev/Audio/Video_Capture_repository_plugin Mediacapture Plugin]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34669</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34669"/>
		<updated>2012-08-09T03:31:00Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin framework which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34667</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34667"/>
		<updated>2012-08-09T03:29:26Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* add_config_form(&amp;amp;$mform) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form($mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function add_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34666</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34666"/>
		<updated>2012-08-09T03:28:44Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* supported_types() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form(&amp;amp;$mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function type_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34665</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34665"/>
		<updated>2012-08-09T03:28:02Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* post_url() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form(&amp;amp;$mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function type_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    global $CFG;&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
supported by recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34664</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34664"/>
		<updated>2012-08-09T03:27:36Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* add_config_form(&amp;amp;$mform) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form(&amp;amp;$mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function type_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
                        null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
supported by recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34663</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34663"/>
		<updated>2012-08-09T03:27:17Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* add_config_form(&amp;amp;$mform) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form(&amp;amp;$mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function type_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;),&lt;br /&gt;
 null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
supported by recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34662</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34662"/>
		<updated>2012-08-09T03:26:42Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/moodle-repository_mediacapture/tree/master/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form(&amp;amp;$mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function type_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;), null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
supported by recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34661</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34661"/>
		<updated>2012-08-09T03:25:54Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* File structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/repository_mediacapture/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/repository_mediacapture/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/repository_mediacapture/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your recorder in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form(&amp;amp;$mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function type_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;), null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
supported by recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34660</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34660"/>
		<updated>2012-08-09T03:25:30Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[https://github.com/ankitdbst/repository_mediacapture/recorders/nanogong Nanogong Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/repository_mediacapture/recorders/localaudiorecorder Local Audio Recorder]&lt;br /&gt;
*[https://github.com/ankitdbst/repository_mediacapture/recorders/red5recorder Red5-Recorder]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your plugin in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form(&amp;amp;$mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function type_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;), null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
supported by recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34658</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34658"/>
		<updated>2012-08-09T03:22:15Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[[Nanogong Recorder [https://github.com/ankitdbst/repository_mediacapture/recorders/nanogong]]]&lt;br /&gt;
*[[Local Audio Recorder [https://github.com/ankitdbst/repository_mediacapture/recorders/localaudiorecorder]]]&lt;br /&gt;
*[[Red5-Recorder [https://github.com/ankitdbst/repository_mediacapture/recorders/red5recorder]]]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your plugin in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function get_type_option_names() {&lt;br /&gt;
    array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form(&amp;amp;$mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function type_config_form($mform) {&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;), null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form). The object code&lt;br /&gt;
for recorders can be embedded by using the &#039;html&#039; tag for $mform.&lt;br /&gt;
The form elements *must* contain the required paramters by mediacapture plugin viz filename, filepath and filetype.&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public static function view($mform, $options) {&lt;br /&gt;
    $recorderhtml = &#039;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&#039;;&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;html&#039;, $recorderhtml);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filepath&#039;, &#039;&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;hidden&#039;, &#039;filetype&#039;, &#039;xyz&#039;);&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function post_url() {&lt;br /&gt;
    return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function string_keys() {&lt;br /&gt;
   return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function min_version() {&lt;br /&gt;
   return array(&#039;java&#039; =&amp;gt; 1.5, &#039;flash&#039; =&amp;gt; 11);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_media() {&lt;br /&gt;
    return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
supported by recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
public function supported_types() {&lt;br /&gt;
    return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34657</id>
		<title>Mediacapture plugin recorders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Mediacapture_plugin_recorders&amp;diff=34657"/>
		<updated>2012-08-09T03:13:13Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: Created page with &amp;quot;== Introduction ==  Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.  ===Overview===  The 3 different parts t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture is a repository plugin which allows recorders to record and upload audio/video content to Moodle easily.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
The 3 different parts to write&lt;br /&gt;
# Administration - You can customise the way administrators and users can configure their recorders. &lt;br /&gt;
# Recorder display - You can also customize the view of the recorders. &lt;br /&gt;
# I18n - Internationalization should be done at the same time as you&#039;re writing the other parts.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
Mediacapture plugin exists from 2.3&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
*[[Nanogong Mediacapture Plugin|Nanogong Mediacapture Plugin]]&lt;br /&gt;
*[[Local Audio Recorder Mediacapture Plugin|Local Audio Recorder Mediacapture Plugin]]&lt;br /&gt;
*[[Red5Recorder Mediacapture Plugin|Red5Recorder Mediacapture Plugin]]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
There is a template available in [https://github.com/ankitdbst/repository_mediacapture_demo]&lt;br /&gt;
&lt;br /&gt;
==File structure==&lt;br /&gt;
# Create a folder for your plugin in &#039;&#039;moodle/repository/mediacapture/recorders&#039;&#039; e.g. &#039;&#039;moodle/repository/mediacapture/recorders/myrecorder&#039;&#039;&lt;br /&gt;
# Create the following files and add them to the &#039;&#039;myrecorder&#039;&#039; folder:&lt;br /&gt;
#* &#039;&#039;lib.php&#039;&#039;, the main class will be named &amp;quot;repository_mediacapture_myrecorder&amp;quot;&lt;br /&gt;
# Create the language file &#039;&#039;repository_mediacapture_myrecorder.php&#039;&#039; and add it to the plugin folder, keeping the following folder structure:&lt;br /&gt;
#*&#039;&#039;moodle/repository/mediacapture/myrecorder/lang/en/repository_mediacapture_myrecorder.php&#039;&#039;&lt;br /&gt;
# Create module.js and styles.css (optional)&lt;br /&gt;
&lt;br /&gt;
==Administration APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====get_type_option_names====&lt;br /&gt;
&#039;&#039;This function must be declared static&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Return an array of string. These strings are setting names. These settings are shared by all instances.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    public static function get_type_option_names() {&lt;br /&gt;
        array(&#039;myrecorder&#039;, &#039;config&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====add_config_form(&amp;amp;$mform)====&lt;br /&gt;
This is for modifying the Moodle form displaying the recorder settings.&lt;br /&gt;
&lt;br /&gt;
For example, to display the standard repository mediacapture plugin settings along with the custom ones for the recorders use:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    public function type_config_form($mform) {&lt;br /&gt;
        $mform-&amp;gt;addElement(&#039;advcheckbox&#039;, &#039;myrecorder&#039;, get_string(&#039;nanogong&#039;, &#039;repository_mediacapture&#039;), null, array(&#039;group&#039; =&amp;gt; 1));&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mediacapture recorder APIs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions you *MUST* override===&lt;br /&gt;
&lt;br /&gt;
====view($mform, $options)====&lt;br /&gt;
Use this function to display the view of the recorder using the $mform (moodle form).&lt;br /&gt;
&lt;br /&gt;
With the example above, this function may look like:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    public static function view($mform, $options) {&lt;br /&gt;
        $mform-&amp;gt;addElement(&#039;text&#039;, &#039;filename&#039;, get_string(&#039;name&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
        $mform-&amp;gt;addElement(&#039;submit&#039;, &#039;save&#039;, get_string(&#039;save&#039;, &#039;repository_mediacapture&#039;));&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====post_url()====&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    public function post_url() {&lt;br /&gt;
        return new moodle_url(&amp;quot;$CFG-&amp;gt;wwwroot/repository/mediacapture/recorders/myrecorder/record.php&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====string_keys()====&lt;br /&gt;
You may list the strings used by your plugin here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    public function string_keys() {&lt;br /&gt;
        return array(&#039;appletnotfound&#039;, &#039;norecordingfound&#039;, &#039;nonamefound&#039;);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====min_version()====&lt;br /&gt;
This function will return an array structure listing the min version of various media &lt;br /&gt;
supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    public function min_version() {&lt;br /&gt;
        return array(&#039;java&#039; =&amp;gt; 1.5);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_media()====&lt;br /&gt;
This function will return list of media supported by the recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    public function supported_media() {&lt;br /&gt;
        return array(&#039;audio&#039;, &#039;video&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====supported_types()====&lt;br /&gt;
This function will return list of technologies used by the recorder.&lt;br /&gt;
supported by recorder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    public function supported_types() {&lt;br /&gt;
        return array(&#039;java&#039;, &#039;flash&#039;, &#039;html5&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Repositories]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33993</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33993"/>
		<updated>2012-05-24T06:38:34Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Coding Period&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=202632#p883953 Forum - Post]&lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
&lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
&lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. The video recording applet would allow recording videos in mp4 format (H.264 video and AAC audio) on the web page and upload it on the web server via HTTP. I would be using the Java Media Framework (JMF) to capture the audio and video stream.&lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May) :&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) :&lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;br /&gt;
=== Developer Blog ===&lt;br /&gt;
* [http://ankitgupta90.tumblr.com/ # Ankit Gupta]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33992</id>
		<title>GSOC/2012</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33992"/>
		<updated>2012-05-24T06:35:52Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Video/audio capture repository plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:banner-gsoc2012.png|right|400px]]This page provides an overview of the [http://www.google-melange.com/gsoc/program/home/google/gsoc2012 Google Summer of Code 2012] projects for Moodle.&lt;br /&gt;
&lt;br /&gt;
==Improving SCORM 2004 Support==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Improve_SCORM_2004_Support]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-7068&lt;br /&gt;
* Developer blog [http://www.guptamayank.com/ # Mayank Gupta]&lt;br /&gt;
&lt;br /&gt;
==Improving Plagiarism API==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1411986 Kanika Goyal]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Plagiarism_API_improvements]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-32225&lt;br /&gt;
&lt;br /&gt;
==Email reminders for calendar events==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1240428&amp;amp;course=5 Isuru Madushanka Weerarathna]&lt;br /&gt;
:&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=381842&amp;amp;course=5 Michael de Raadt], [http://moodle.org/user/view.php?id=955449&amp;amp;course=5 Rossiani Wijaya]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Email reminders for calendar events]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
* Tracker issue MDL-1329&lt;br /&gt;
&lt;br /&gt;
==Video/audio capture repository plugin==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1439658 Ankit Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1328988 Rajesh Taneja]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[ Audio/Video Capture repository plugin ]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* Tracker Issue CONTRIB-3631&lt;br /&gt;
* Developer blog [http://ankitgupta90.tumblr.com/ # Ankit Gupta]&lt;br /&gt;
[[Category:GSOC]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33991</id>
		<title>GSOC/2012</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33991"/>
		<updated>2012-05-24T06:35:13Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Video/audio capture repository plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:banner-gsoc2012.png|right|400px]]This page provides an overview of the [http://www.google-melange.com/gsoc/program/home/google/gsoc2012 Google Summer of Code 2012] projects for Moodle.&lt;br /&gt;
&lt;br /&gt;
==Improving SCORM 2004 Support==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Improve_SCORM_2004_Support]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-7068&lt;br /&gt;
* Developer blog [http://www.guptamayank.com/ # Mayank Gupta]&lt;br /&gt;
&lt;br /&gt;
==Improving Plagiarism API==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1411986 Kanika Goyal]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Plagiarism_API_improvements]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-32225&lt;br /&gt;
&lt;br /&gt;
==Email reminders for calendar events==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1240428&amp;amp;course=5 Isuru Madushanka Weerarathna]&lt;br /&gt;
:&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=381842&amp;amp;course=5 Michael de Raadt], [http://moodle.org/user/view.php?id=955449&amp;amp;course=5 Rossiani Wijaya]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Email reminders for calendar events]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
* Tracker issue MDL-1329&lt;br /&gt;
&lt;br /&gt;
==Video/audio capture repository plugin==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1439658 Ankit Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1328988 Rajesh Taneja]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[ Audio/Video Capture repository plugin ]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* Tracker Issue [http://tracker.moodle.org/browse/CONTRIB-3631/ CONTRIB-3631]&lt;br /&gt;
* Developer blog [http://ankitgupta90.tumblr.com/ # Ankit Gupta]&lt;br /&gt;
[[Category:GSOC]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33990</id>
		<title>GSOC/2012</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33990"/>
		<updated>2012-05-24T06:34:18Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:banner-gsoc2012.png|right|400px]]This page provides an overview of the [http://www.google-melange.com/gsoc/program/home/google/gsoc2012 Google Summer of Code 2012] projects for Moodle.&lt;br /&gt;
&lt;br /&gt;
==Improving SCORM 2004 Support==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Improve_SCORM_2004_Support]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-7068&lt;br /&gt;
* Developer blog [http://www.guptamayank.com/ # Mayank Gupta]&lt;br /&gt;
&lt;br /&gt;
==Improving Plagiarism API==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1411986 Kanika Goyal]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Plagiarism_API_improvements]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-32225&lt;br /&gt;
&lt;br /&gt;
==Email reminders for calendar events==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1240428&amp;amp;course=5 Isuru Madushanka Weerarathna]&lt;br /&gt;
:&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=381842&amp;amp;course=5 Michael de Raadt], [http://moodle.org/user/view.php?id=955449&amp;amp;course=5 Rossiani Wijaya]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Email reminders for calendar events]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
* Tracker issue MDL-1329&lt;br /&gt;
&lt;br /&gt;
==Video/audio capture repository plugin==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1439658 Ankit Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1328988 Rajesh Taneja]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[ Audio/Video Capture repository plugin ]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 CONTRIB-3631]&lt;br /&gt;
* Developer blog [http://ankitgupta90.tumblr.com/ # Ankit Gupta]&lt;br /&gt;
[[Category:GSOC]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33988</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33988"/>
		<updated>2012-05-24T02:59:03Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Coding Period&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=202632#p883953 Forum - Post]&lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
&lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
&lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. The video recording applet would allow recording videos in mp4 format (H.264 video and AAC audio) on the web page and upload it on the web server via HTTP. I would be using the Java Media Framework (JMF) to capture the audio and video stream.&lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May) :&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) :&lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33812</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33812"/>
		<updated>2012-05-15T00:45:33Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Community Bonding&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=202632#p883953 Forum - Post]&lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
&lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
&lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. The video recording applet would allow recording videos in mp4 format (H.264 video and AAC audio) on the web page and upload it on the web server via HTTP. I would be using the Java Media Framework (JMF) to capture the audio and video stream.&lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May) :&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) :&lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33801</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33801"/>
		<updated>2012-05-14T08:01:54Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Community Bonding&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = &lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
&lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
&lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. The video recording applet would allow recording videos in mp4 format (H.264 video and AAC audio) on the web page and upload it on the web server via HTTP. I would be using the Java Media Framework (JMF) to capture the audio and video stream.&lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May) :&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) :&lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33800</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33800"/>
		<updated>2012-05-14T08:00:46Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Community Bonding&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = &lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
&lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines.&lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May) :&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) :&lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33799</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33799"/>
		<updated>2012-05-14T08:00:00Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Schedule of Deliverables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Community Bonding&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = &lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. &lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May) :&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) :&lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33798</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33798"/>
		<updated>2012-05-14T07:59:19Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Schedule of Deliverables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Community Bonding&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = &lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. &lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May) :&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) :&lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33797</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33797"/>
		<updated>2012-05-14T07:57:45Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Audio/Video Capture repository plugin&lt;br /&gt;
|state = Community Bonding&lt;br /&gt;
|tracker = CONTRIB-3631&lt;br /&gt;
|discussion = &lt;br /&gt;
|assignee = Ankit Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.3 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. &lt;br /&gt;
&lt;br /&gt;
=== Schedule of Deliverables ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-phase&#039;&#039;&#039; (10th May - 21st May)&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First-phase&#039;&#039;&#039; (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second-phase&#039;&#039;&#039; (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-phase&#039;&#039;&#039; (12th August - 20th August) &lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
=== Ideas List ===&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
=== Tracker ===&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
=== GSoC Proposal ===&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/ankitgupta_/1 Original Proposal - GSoC 2012]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33796</id>
		<title>Audio/Video Capture repository plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Audio/Video_Capture_repository_plugin&amp;diff=33796"/>
		<updated>2012-05-14T07:53:02Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: Created page with &amp;quot;== Introduction == Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lecture...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Audio/Video Capture repository plugin is of great utility to both teachers and students. Teachers can directly submit assignments or record audio/video lectures for the students. This project is for the implementation of the Audio/Video Capture repository plug-in which enables users to directly capture and upload their audio/video files to the server.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle 2.2 required&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
The ’A/V recorder’ module will use the Repository API and its own small API for integration of sound and video recording components and web services with Moodle. The module would have a UI which would receive requests for recording media. The A/V Module calls the ‘record’ module. The recorded media is then converted to a proper format (using ImaACPCM or Speex codecs) to be saved to the Moodle servers. The file is then uploaded to the servers by either using the existing plugins or a new module is created to accomplish the task. The module then saves the file name/location in the database. During the above operations the module would inherently interact with the Moodle Interface for various data operations/inter-module interactions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation&#039;&#039;&#039;&lt;br /&gt;
I would be extending the NanoGong Java Applet to record, playback and save the content to web-pages for Moodle 2.0. The NanoGong applet is quite well-suited for the project and currently supports audio recording. NanoGong provides an extended HTML editor which would be integrated with the current editor provided by the default Moodle installation everywhere. Below are some of the prospects of using the applet (as mentioned in the NanoGong documentation)&lt;br /&gt;
The editor would be customizable from the back-end with varying permissions for students, teachers and administrators over the record, playback and speed controls. The functionality will be as follows : &lt;br /&gt;
For students using Moodle :&lt;br /&gt;
Students can submit their voice/video messages using the extended html editor. These messages can be deleted and changed provided it is not locked by the corresponding teacher giving the assignment.&lt;br /&gt;
For teachers using Moodle :&lt;br /&gt;
Teacher can view all the messages submitted and choose to lock/change or assign score to a  given assignment based on the message. Alternatively the applet can be used by teachers to record video/audio lectures. &lt;br /&gt;
As for the Video part, no known open source alternatives exists currently for a video recording Java Applet. I have taken a good look at Vimas, the enterprise Applet for Video capturing and would look to build something on those lines. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schedule of Deliverables&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pre-phase (10th May - 21st May)&lt;br /&gt;
Pre-phase would involve assembling all the pre-requisites for the coding period. Talking to the mentors and reading the documentation to be in good stead before the coding period begins.&lt;br /&gt;
Also maintaining a blog to track day to day progress and track reviews by mentors, would be done during this period.&lt;br /&gt;
&lt;br /&gt;
First-phase (21st May - 9th July)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
21st May - 28th May&lt;br /&gt;
Code the entire framework for the plugin. Build a basic back bone wherein addition of these media capture modules can be easily done. &lt;br /&gt;
&lt;br /&gt;
29th May - 4th June&lt;br /&gt;
Port the NanoGong applet to Moodle 2.0 and integrate the functionality within the module.&lt;br /&gt;
&lt;br /&gt;
5th June - 19th June&lt;br /&gt;
Complete the Audio Plugin Front-end and back-end which manages permissions for audio recording for students, teachers, various options for playback, save and speed control. &lt;br /&gt;
&lt;br /&gt;
20th June - 9th July&lt;br /&gt;
Look for open-source alternatives for Vimas and start the development/integration of the Video plugin in to the Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Second-phase (11th July - 1st August)&lt;br /&gt;
Deliverables : &lt;br /&gt;
&lt;br /&gt;
11th July - 18th July&lt;br /&gt;
Entire back-end + front-end for the module should be complete.&lt;br /&gt;
&lt;br /&gt;
19th July - 25th July&lt;br /&gt;
Customize the Video plug-in and test the support for different frames and audio/video quality on various browsers.&lt;br /&gt;
&lt;br /&gt;
26th July - 1st August&lt;br /&gt;
Extra time for full implementation of the Video plug-in . This would involve intensive testing and bug-fixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Post-phase (12th August - 20th August) &lt;br /&gt;
This period is exclusively reserved for final testing, minor bug fixes or enhancements to the front-end, documentation of the entire code, review from the mentors and minor changes to the code.&lt;br /&gt;
&lt;br /&gt;
== Relavant Links ==&lt;br /&gt;
* [https://docs.moodle.org/dev/Projects_for_new_developers Moodle - Google Summer of Code 2012 Idea List]&lt;br /&gt;
* [http://tracker.moodle.org/browse/CONTRIB-3631 An Audio/Video Capture repository plug-in]&lt;br /&gt;
* [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/_ankitgupta/1 Original Proposal - GSoC 2012]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33795</id>
		<title>GSOC/2012</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33795"/>
		<updated>2012-05-14T07:33:18Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:banner-gsoc2012.png|right|400px]]This page provides an overview of the [http://www.google-melange.com/gsoc/program/home/google/gsoc2012 Google Summer of Code 2012] projects for Moodle.&lt;br /&gt;
&lt;br /&gt;
==Improving SCORM 2004 Support==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-7068&lt;br /&gt;
* Developer blog [http://mayankgupta.beakkon.com/ # Mayank Gupta]&lt;br /&gt;
&lt;br /&gt;
==Improving Plagiarism API==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1411986 Kanika Goyal]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Plagiarism_API_improvements]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-32225&lt;br /&gt;
&lt;br /&gt;
==Email reminders for calendar events==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1240428&amp;amp;course=5 Isuru Madushanka Weerarathna]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=381842&amp;amp;course=5 Michael de Raadt]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Email reminders for calendar events]]&lt;br /&gt;
&lt;br /&gt;
==Video/audio capture repository plugin==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1439658 Ankit Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1328988 Rajesh Taneja]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[ Audio/Video Capture repository plugin ]]&lt;br /&gt;
[[Category:GSOC]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33794</id>
		<title>GSOC/2012</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33794"/>
		<updated>2012-05-14T07:28:45Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Video/audio capture repository plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:banner-gsoc2012.png|right|400px]]This page provides an overview of the [http://www.google-melange.com/gsoc/program/home/google/gsoc2012 Google Summer of Code 2012] projects for Moodle.&lt;br /&gt;
&lt;br /&gt;
==Improving SCORM 2004 Support==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-7068&lt;br /&gt;
* Developer blog [http://mayankgupta.beakkon.com/ # Mayank Gupta]&lt;br /&gt;
&lt;br /&gt;
==Improving Plagiarism API==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1411986 Kanika Goyal]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Plagiarism_API_improvements]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-32225&lt;br /&gt;
&lt;br /&gt;
==Email reminders for calendar events==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1240428&amp;amp;course=5 Isuru Madushanka Weerarathna]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=381842&amp;amp;course=5 Michael de Raadt]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Email reminders for calendar events]]&lt;br /&gt;
&lt;br /&gt;
==Video/audio capture repository plugin==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1439658 Ankit Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1328988 Rajesh Taneja]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [https://docs.google.com/document/d/1UV7GY-u6ycx-Lle14vpxa_8b5Vtg6KrV3rG1AgMaiWs/edit Audio/Video Capture repository plugin] &lt;br /&gt;
[[Category:GSOC]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33623</id>
		<title>GSOC/2012</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33623"/>
		<updated>2012-04-29T02:55:34Z</updated>

		<summary type="html">&lt;p&gt;Ankitdbst: /* Video/audio capture repository plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:banner-gsoc2012.png|right|400px]]This page provides an overview of the [http://www.google-melange.com/gsoc/program/home/google/gsoc2012 Google Summer of Code 2012] projects for Moodle.&lt;br /&gt;
&lt;br /&gt;
==Improving SCORM 2004 Support==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-7068&lt;br /&gt;
* Developer blog [http://mayankgupta.beakkon.com/ # Mayank Gupta]&lt;br /&gt;
&lt;br /&gt;
==Improving Plagiarism API==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1411986 Kanika Goyal]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Plagiarism_API_improvements]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-32225&lt;br /&gt;
&lt;br /&gt;
==Email reminders for calendar events==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1240428&amp;amp;course=5 Isuru Madushanka Weerarathna]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=381842&amp;amp;course=5 Michael de Raadt]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
==Video/audio capture repository plugin==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1439658 Ankit Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1328988 Rajesh Taneja]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: &lt;br /&gt;
[[Category:GSOC]]&lt;/div&gt;</summary>
		<author><name>Ankitdbst</name></author>
	</entry>
</feed>