source: gs3-extensions/web-audio/trunk/diy-audio-player/script/audioDB-play.js@ 28388

Last change on this file since 28388 was 28388, checked in by davidb, 11 years ago

Set of JS, CSS, PNG etc web resources to support a mixture of audio player/document display capabilities

File size: 2.7 KB
Line 
1
2var SVG_NS ="http://www.w3.org/2000/svg";
3var XLINK_NS = "http://www.w3.org/1999/xlink";
4
5var _diyImages = "ext/diy-audio-player/images/";
6
7function svgAudioDBInit()
8{
9 var segsElem = document.getElementById("svgAudioDBSegments");
10 var mysong = document.getElementById("mysong");
11
12 var barWidth = mysong.getElementWidth();
13
14 if ((typeof frameOffsetStr === "undefined") || (frameOffsetStr == null)) { return; }
15
16 var frameOffsetList = frameOffsetStr.split(",");
17 frameOffsetList.sort(function(a,b){return a-b});
18
19 prevOffsetInSecs = 0.0;
20
21 for (i=0; i < frameOffsetList.length; i++) {
22 var frameOffset = frameOffsetList[i];
23 var offsetInSecs=(250*frameOffset)/1000.0;
24
25 var frameLengthInSecs = frameLength * 250 / 1000;
26 if (i > 0) {
27 if ((offsetInSecs - prevOffsetInSecs) < frameLengthInSecs) {
28 continue;
29 }
30 }
31
32 var x = barWidth * offsetInSecs / duration;
33 var y = 0;
34
35 var gElem = document.createElementNS(SVG_NS,'g');
36 gElem.setAttribute('transform','translate('+x+','+y+')');
37
38 var rectElem = document.createElementNS(SVG_NS,'rect');
39 rectElem.setAttribute('width',150);
40 rectElem.setAttribute('height','24');
41 rectElem.setAttribute('x','0');
42 rectElem.setAttribute('y','0');
43 rectElem.setAttribute('fill', 'rgb(100%,100%,70%)');
44
45 var playImgElem = document.createElementNS(SVG_NS,"image");
46 playImgElem.setAttributeNS(XLINK_NS, "xlink:href",
47 _diyImages + "/play20.png");
48 playImgElem.setAttribute("x","2");
49 playImgElem.setAttribute("y","2");
50 playImgElem.setAttribute("width","20");
51 playImgElem.setAttribute("height","20");
52
53 var onclick ="playFromOffset('mysong'," + frameOffset + ")";
54 playImgElem.setAttribute("onclick",onclick);
55
56 playImgElem.setAttribute("onmouseover","playHighlightOnSVG(evt.target,20)");
57 playImgElem.setAttribute("onmouseout", "playHighlightOffSVG(evt.target,20)");
58
59 var textElem = document.createElementNS(SVG_NS,'text');
60 textElem.setAttribute('x','24');
61 textElem.setAttribute('y','16');
62 textElem.setAttribute("style","color: black; font-size: 75%;");
63
64 var textNode = document.createTextNode("match @ "+ offsetInSecs + " secs");
65 textElem.appendChild(textNode);
66
67 var rectLenElem = document.createElementNS(SVG_NS,'rect');
68 var frameLengthWidth = barWidth * frameLengthInSecs / duration;
69 rectLenElem.setAttribute('width',frameLengthWidth);
70 rectLenElem.setAttribute('height','4');
71 rectLenElem.setAttribute('x','0');
72 rectLenElem.setAttribute('y','20');
73 rectLenElem.setAttribute('fill', 'rgb(100%,0%,0%)');
74
75
76 gElem.appendChild(rectElem);
77 gElem.appendChild(rectLenElem);
78 gElem.appendChild(playImgElem);
79 gElem.appendChild(textElem);
80 segsElem.appendChild(gElem);
81
82 prevOffsetInSecs = offsetInSecs;
83 }
84}
Note: See TracBrowser for help on using the repository browser.