Skip to content

Commit d0d3e82

Browse files
committed
constants for events names
1 parent 77e296b commit d0d3e82

File tree

4 files changed

+535
-63
lines changed

4 files changed

+535
-63
lines changed

examples/client/scripts/library/event.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ define([
1717

1818
var events = {};
1919

20+
var constants = {};
21+
2022
/**
2123
*
2224
* events manager constructor
@@ -27,6 +29,22 @@ define([
2729

2830
this.events = events;
2931

32+
this.constants = constants;
33+
34+
// player events
35+
this.constants.positionEvent = 'player:position';
36+
this.constants.progressEvent = 'player:progress';
37+
this.constants.playEvent = 'player:play';
38+
this.constants.pauseEvent = 'player:pause';
39+
this.constants.stopEvent = 'player:stop';
40+
this.constants.volumeEvent = 'player:volume';
41+
this.constants.pannerEvent = 'player:panner';
42+
this.constants.playbackRateEvent = 'player:playbackRate';
43+
this.constants.bufferingEvent = 'player:bufferingEvent';
44+
45+
// waveform events
46+
this.constants.clickEvent = 'waveform:clickEvent';
47+
3048
};
3149

3250
/**

examples/client/scripts/main-test-data.js

Lines changed: 35 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,17 @@ require.config({
1515
'jquery': 'vendor/jquery/dist/jquery',
1616

1717
// player
18-
'player.core': 'vendor/web-audio-api-player/source/player',
18+
'player.core': 'vendor/web-audio-api-player/source/core',
1919
'player.audio': 'vendor/web-audio-api-player/source/audio',
20+
'player.ui': 'vendor/web-audio-api-player/source/ui',
21+
'player.ajax': 'vendor/web-audio-api-player/source/ajax',
2022

2123
// own small event manager for this example
2224
'event': 'library/event',
2325

2426
// waveform visualizer scripts
25-
'canvas': '../../../source/scripts/library/canvas',
26-
'waveform': '../../../source/scripts/library/waveform',
27+
'waveform.canvas': '../../../source/scripts/library/canvas',
28+
'waveform.core': '../../../source/scripts/library/core',
2729
'waveform.ajax': 'vendor/web-audio-api-player/source/ajax'
2830
}
2931

@@ -34,73 +36,41 @@ require.config({
3436
* main require
3537
*
3638
* @param {type} $
37-
* @param {type} ajax
38-
* @param {type} audio
39-
* @param {type} EventsManager
39+
* @param {type} waveformCanvas
40+
* @param {type} WaveformCore
41+
* @param {type} PlayerUI
42+
* @param {type} PlayerCore
4043
*
4144
* @returns {undefined}
4245
*/
4346
require([
4447
'jquery',
45-
'waveform.ajax',
46-
'player.audio',
47-
'event'
48+
'waveform.canvas',
49+
'waveform.core',
50+
'player.ui',
51+
'player.core'
4852

49-
], function ($, ajax, audio, EventsManager) {
53+
], function ($, waveformCanvas, WaveformCore, PlayerUI, PlayerCore) {
5054

5155
var addPlayer = function addPlayer(options) {
5256

53-
// create an audio context
54-
var audioContext = audio.getContext();
57+
var $playerElement = $('#player');
58+
59+
var playerUI = new PlayerUI({ $element: $playerElement });
60+
61+
playerUI.createPlayPauseButton();
5562

56-
ajax.getAudioBuffer(options, audioContext, function(error, trackBuffer) {
63+
if (options.trackFormat === 'mp3') {
5764

58-
// if there was no error on the server
59-
if (!error) {
60-
61-
// player
62-
var player = new Player({ audioContext: audioContext });
63-
64-
player.setBuffer(trackBuffer);
65-
66-
var $button = $('<button>');
67-
68-
$button.addClass('play').text('>');
69-
70-
var $body = $('body');
71-
72-
$body.find('.player').append($button);
73-
74-
$button.on('click', function() {
75-
76-
if ($(this).hasClass('play')) {
77-
78-
player.play();
79-
80-
$button.removeClass('play').addClass('pause').text('||');
81-
82-
waveform.updateRangeStart();
83-
84-
} else {
85-
86-
player.pause();
87-
88-
$button.removeClass('pause').addClass('play').text('>');
89-
90-
waveform.updateRangeStop();
91-
92-
}
93-
94-
});
95-
96-
} else {
97-
98-
// log the server error
99-
console.log(error);
100-
101-
}
65+
var formatCode = 'mp32';
10266

103-
});
67+
}
68+
69+
var trackUrl = 'https://storage-new.newjamendo.com/download/track/' + options.trackId + '/' + formatCode;
70+
71+
var playerCore = new PlayerCore({ 'trackUrl': trackUrl });
72+
73+
playerCore.startListening();
10474

10575
};
10676

@@ -110,16 +80,19 @@ require([
11080
// get the canvas element
11181
var $element = $('#serverWaveForm');
11282

113-
var canvasContext = canvas.getContext($element);
83+
var canvasContext = waveformCanvas.getContext($element);
11484

115-
var waveform = new Waveform({
85+
var waveform = new WaveformCore({
11686
canvasContext: canvasContext
11787
});
11888

11989
var data = {"peaks":[7,18,25,16,4,10,7,42,90,38,60,72,69,86,98,70,83,67,81,92,78,85,68,76,85,81,71,19,72,91,88,87,90,84,90,92,88,85,84,90,96,83,92,81,89,96,89,96,82,78,84,85,85,76,77,83,83,83,80,77,84,83,83,80,70,84,89,79,89,78,89,98,85,89,80,91,89,91,91,84,82,90,89,89,87,81,92,89,93,92,71,62,56,55,52,53,61,53,60,53,52,48,58,61,53,56,49,60,60,57,51,89,92,96,89,92,77,94,100,87,82,84,90,100,89,93,85,90,95,90,78,52,74,84,83,85,80,78,85,84,83,79,72,86,87,79,79,71,83,96,81,90,74,82,87,82,86,73,78,83,81,85,80,76,85,83,85,79,71,84,88,84,85,69,84,98,72,82,67,80,90,78,85,73,76,84,82,88,78,73,83,84,89,87,49,9,1,0,0,0]};
12090

12191
// set waveform data
12292
waveform.setWaveData(data);
93+
94+
// start listening for player events
95+
waveform.startListening();
12396

12497
// set the optioms
12598
var layoutOptions = {};
@@ -142,9 +115,9 @@ require([
142115
var trackOptions = {};
143116

144117
trackOptions.trackId = 1100511;
145-
trackOptions.trackFormat = 'ogg';
118+
trackOptions.trackFormat = 'mp3';
146119

147-
addPlayer(waveform, trackOptions);
120+
addPlayer(trackOptions);
148121

149122
});
150123

examples/waveform-test-data.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
<body>
1010
<h1>waveform prototype</h1>
1111
<canvas id="serverWaveForm"></canvas>
12-
<div class="player"></div>
12+
<div id="player"></div>
1313
</body>
1414
</html>

0 commit comments

Comments
 (0)