mosaicode-javascript-webaudio/blocks/sound/playback.json

40 lines
1.4 KiB
JSON

{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "playback",
"language": "javascript",
"extension": "webaudio",
"help": "Playback",
"label": "Playback",
"color": "150:150:250:150",
"group": "Sound",
"codes": {
"declaration": "\nvar block_$id$ = context.createBufferSource();\nvar $port[output]$ = block_$id$;\n",
"html": "\n$prop[label]$ <input type=\"file\" id=\"pb_$id$\" onchange=\"handleFile_$id$(this.files)\">\n",
"execution": "\nfunction handleFile_$id$() {\n var input_pb_$id$ = document.getElementById(\"pb_$id$\");\n input_pb_$id$.addEventListener(\"change\", handleFile_$id$, false);\n\n var reader = new FileReader();\n reader.onload = function(ev) {\n context.decodeAudioData(ev.target.result, function(buffer) {\n block_$id$.buffer = buffer;\n block_$id$.loop = (\"$prop[loop]$\" == \"True\");\n });\n };\n reader.readAsArrayBuffer(input_pb_$id$.files[0]);\n $port[output]$.start();\n}\n",
"onload": ""
},
"properties": [
{
"name": "loop",
"label": "Loop",
"type": "Check",
"value": "True"
},
{
"name": "label",
"label": "Label",
"type": "String",
"value": "Playback"
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.sound",
"label": "Output",
"conn_type": "Output",
"name": "output"
}
]
}