Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

45
LINES

< > BotCompany Repo | #1032543 // WaveSurfer - wavesurfer.js (graphical HTML audio player) as JavaX classs

JavaX fragment (include) [tags: use-pretranspiled]

Libraryless. Click here for Pure Java version (5138L/29K).

sclass WaveSurfer {
  S randomID = randomIDForPageElement();
  S id = "wavesurfer-" + randomID; // id of container element
  S containerSelector;
  S varName = "waveSurfer_" + randomID; // name of variable for wavesurfer instance
  new MapSO options;
  S audioURL;
  
  S headStuff() {
    ret hscript("https://unpkg.com/wavesurfer.js");
  }
  
  S container() {
    ret emptydiv(+id);
  }
  
  S js_init() {
    if (empty(containerSelector)) containerSelector = "#" + id;
    options.put(container := containerSelector);
    
    ret jsDollarVars([[
      var $waveSurfer = WaveSurfer.create($options);
    ]], +options, waveSurfer := JS(varName));
  }
  
  S js_loadAudio(S url) {
    ret jsDollarVars([[
      $waveSurfer.load($url);
    ]], +url, waveSurfer := JS(varName));
  }
  
  S completeHTML(S audioURL) {
    ret linesLL(
      headStuff(),
      container(),
      hjs(linesLL(js_init(), js_loadAudio(audioURL)))
    );
  }
  
  S js_playPause() {
    ret jsDollarVars([[
      $waveSurfer.playPause();
    ]], waveSurfer := JS(varName));
  }
}

download  show line numbers  debug dex  old transpilations   

Travelled to 3 computer(s): bhatertpkbcr, mowyntqkapby, mqqgnosmbjvj

No comments. add comment

Snippet ID: #1032543
Snippet name: WaveSurfer - wavesurfer.js (graphical HTML audio player) as JavaX classs
Eternal ID of this version: #1032543/10
Text MD5: 3f0c3ebd16d9036176d4e73fc0ace1de
Transpilation MD5: a800b8340dcf822fa09f6fb89c125eff
Author: stefan
Category: javax / html
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2021-09-22 15:36:59
Source code size: 1101 bytes / 45 lines
Pitched / IR pitched: No / No
Views / Downloads: 162 / 319
Version history: 9 change(s)
Referenced in: #1034167 - Standard Classes + Interfaces (LIVE, continuation of #1003674)