@lls/lls-audio 0.0.59 → 0.0.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,190 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
-
9
- var _react = require('react');
10
-
11
- var _react2 = _interopRequireDefault(_react);
12
-
13
- var _CustomWave = require('../player/CustomWave');
14
-
15
- var _CustomWave2 = _interopRequireDefault(_CustomWave);
16
-
17
- var _audioContext = require('../utils/audioContext');
18
-
19
- var _audioContext2 = _interopRequireDefault(_audioContext);
20
-
21
- var _audio = require('../utils/audio');
22
-
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
-
25
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
26
-
27
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
28
-
29
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
30
-
31
- var audioContext = new _audioContext2.default();
32
-
33
- var DesktopAudioRecorder = function (_Component) {
34
- _inherits(DesktopAudioRecorder, _Component);
35
-
36
- function DesktopAudioRecorder(props) {
37
- _classCallCheck(this, DesktopAudioRecorder);
38
-
39
- var _this = _possibleConstructorReturn(this, (DesktopAudioRecorder.__proto__ || Object.getPrototypeOf(DesktopAudioRecorder)).call(this, props));
40
-
41
- _this.state = {
42
- isRecording: false,
43
- recordedData: null,
44
- waveform: null
45
- //this.audioRecorder = null
46
- };_this.buffers = [];
47
- return _this;
48
- }
49
-
50
- _createClass(DesktopAudioRecorder, [{
51
- key: 'componentDidMount',
52
- value: function componentDidMount() {
53
- var _this2 = this;
54
-
55
- window.navigator.getUserMedia({
56
- "audio": {
57
- "mandatory": {
58
- "googEchoCancellation": "false",
59
- "googAutoGainControl": "false",
60
- "googNoiseSuppression": "false",
61
- "googHighpassFilter": "false"
62
- },
63
- "optional": []
64
- }
65
- }, function (stream) {
66
- return _this2.onMediaSuccess(stream);
67
- }, function (stream) {
68
- return _this2.onMediaError(stream);
69
- });
70
- }
71
- }, {
72
- key: 'render',
73
- value: function render() {
74
- var _this3 = this;
75
-
76
- var _state = this.state,
77
- isRecording = _state.isRecording,
78
- waveform = _state.waveform;
79
-
80
- return _react2.default.createElement(
81
- 'div',
82
- null,
83
- 'Desktop audio recorder',
84
- isRecording ? _react2.default.createElement(
85
- 'button',
86
- { onClick: function onClick() {
87
- return _this3.stopRecording();
88
- } },
89
- ' stop recording '
90
- ) : _react2.default.createElement(
91
- 'button',
92
- { onClick: function onClick() {
93
- return _this3.record();
94
- } },
95
- ' record '
96
- ),
97
- waveform ? _react2.default.createElement(_CustomWave2.default, {
98
- width: 500,
99
- currentTime: 0,
100
- totalTime: 200,
101
- height: 40,
102
- isLoading: false,
103
- waveform: waveform
104
- }) : null
105
- );
106
- }
107
- }, {
108
- key: 'record',
109
- value: function record() {
110
- this.setState({
111
- recordedData: null,
112
- isRecording: true
113
- });
114
- }
115
- }, {
116
- key: 'onMediaSuccess',
117
- value: function onMediaSuccess(stream) {
118
- var _this4 = this;
119
-
120
- var bufferSize = 4096;
121
- var numberOfInputChannels = 2;
122
- var numberOfOutputChannels = 2;
123
-
124
- // creates an audio node from the microphone incoming stream
125
- var mediaStream = audioContext.createMediaStreamSource(stream);
126
- // https://developer.mozilla.org/en-US/docs/Web/API/AudioaudioContext/createScriptProcessor
127
- var recorder = audioContext.createScriptProcessor ? audioContext.createScriptProcessor(bufferSize, numberOfInputChannels, numberOfOutputChannels) : audioContext.createJavaScriptNode(bufferSize, numberOfInputChannels, numberOfOutputChannels);
128
-
129
- recorder.onaudioprocess = function (e) {
130
- var _state2 = _this4.state,
131
- recordedData = _state2.recordedData,
132
- isRecording = _state2.isRecording;
133
-
134
- if (!isRecording) return;
135
- var audioBuffer = (0, _audio.appendBuffer)(recordedData, e.inputBuffer);
136
- var waveform = (0, _audio.convertAudioBufferToWaveform)(audioBuffer);
137
-
138
- _this4.setState({
139
- recordedData: audioBuffer,
140
- waveform: waveform
141
- });
142
- };
143
-
144
- // we connect the recorder with the input stream
145
- mediaStream.connect(recorder);
146
- recorder.connect(audioContext.destination);
147
- }
148
- }, {
149
- key: 'onMediaError',
150
- value: function onMediaError(e) {
151
- console.error('media error', e);
152
- }
153
-
154
- // This is just for demo purposes: in real life we'll upload the file somewhere
155
-
156
- }, {
157
- key: 'updateAudioDom',
158
- value: function updateAudioDom() {
159
- var recordedData = this.state.recordedData;
160
-
161
- var audioEl = document.querySelector('audio');
162
-
163
- if (audioEl) {
164
- var wav = (0, _audio.audioBufferToWav)(recordedData);
165
- var audioBlob = new Blob([wav], { type: 'audio/wav' });
166
- var reader = new FileReader();
167
- reader.onload = function (e) {
168
- // e.target.result will hold the base64 data.
169
- // Note: It includes the pre-text "data:audio/<format>;base64,<base64 data>"
170
- audioEl.src = e.target.result;
171
- };
172
- reader.readAsDataURL(audioBlob);
173
- }
174
- }
175
- }, {
176
- key: 'stopRecording',
177
- value: function stopRecording() {
178
- this.setState({
179
- isRecording: false
180
- });
181
-
182
- // Update audio element with new file
183
- this.updateAudioDom();
184
- }
185
- }]);
186
-
187
- return DesktopAudioRecorder;
188
- }(_react.Component);
189
-
190
- exports.default = DesktopAudioRecorder;
@@ -1,143 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
-
9
- var _react = require('react');
10
-
11
- var _react2 = _interopRequireDefault(_react);
12
-
13
- var _msr = require('msr');
14
-
15
- var _msr2 = _interopRequireDefault(_msr);
16
-
17
- var _Wave = require('../player/Wave');
18
-
19
- var _Wave2 = _interopRequireDefault(_Wave);
20
-
21
- var _audioContext = require('../utils/audioContext');
22
-
23
- var _audioContext2 = _interopRequireDefault(_audioContext);
24
-
25
- var _audio = require('../utils/audio');
26
-
27
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
-
29
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
30
-
31
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
32
-
33
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
34
-
35
- var audioContext = new _audioContext2.default();
36
-
37
- var DesktopRecorder = function (_Component) {
38
- _inherits(DesktopRecorder, _Component);
39
-
40
- function DesktopRecorder(props) {
41
- _classCallCheck(this, DesktopRecorder);
42
-
43
- var _this = _possibleConstructorReturn(this, (DesktopRecorder.__proto__ || Object.getPrototypeOf(DesktopRecorder)).call(this, props));
44
-
45
- _this.state = {
46
- isRecording: false,
47
- recordedData: null
48
- };
49
- _this.mediaRecorder = null;
50
- _this.buffers = [];
51
- return _this;
52
- }
53
-
54
- _createClass(DesktopRecorder, [{
55
- key: 'render',
56
- value: function render() {
57
- var _this2 = this;
58
-
59
- var _state = this.state,
60
- isRecording = _state.isRecording,
61
- recordedData = _state.recordedData;
62
-
63
- return _react2.default.createElement(
64
- 'div',
65
- null,
66
- 'Desktop recorder',
67
- isRecording ? _react2.default.createElement(
68
- 'button',
69
- { onClick: function onClick() {
70
- return _this2.stopRecording();
71
- } },
72
- ' stop recording '
73
- ) : _react2.default.createElement(
74
- 'button',
75
- { onClick: function onClick() {
76
- return _this2.record();
77
- } },
78
- ' record '
79
- ),
80
- recordedData ? _react2.default.createElement(_Wave2.default, {
81
- width: 500,
82
- currentTime: 0,
83
- height: 40,
84
- isLoading: false,
85
- buffer: recordedData }) : null
86
- );
87
- }
88
- }, {
89
- key: 'record',
90
- value: function record() {
91
- var _this3 = this;
92
-
93
- window.navigator.getUserMedia({ audio: true }, function (stream) {
94
- return _this3.onMediaSuccess(stream);
95
- }, function (stream) {
96
- return _this3.onMediaError(stream);
97
- });
98
- this.setState({
99
- isRecording: true
100
- });
101
- }
102
- }, {
103
- key: 'onMediaSuccess',
104
- value: function onMediaSuccess(stream) {
105
- var _this4 = this;
106
-
107
- this.mediaRecorder = new _msr2.default(stream);
108
- this.mediaRecorder.mimeType = 'audio/wav'; // check this line for audio/wav
109
- this.mediaRecorder.bufferSize = 256; // check this line for audio/wav
110
- this.mediaRecorder.ondataavailable = function (blob) {
111
- (0, _audio.convertBlobToAudioBuffer)(blob, _this4.onRecordingConverted.bind(_this4));
112
- };
113
- this.mediaRecorder.start();
114
- }
115
- }, {
116
- key: 'onRecordingConverted',
117
- value: function onRecordingConverted(audioBuffer) {
118
- var recordedData = this.state.recordedData;
119
-
120
- var mergedBuffer = (0, _audio.appendBuffer)(recordedData, audioBuffer);
121
- this.setState({
122
- recordedData: mergedBuffer
123
- });
124
- }
125
- }, {
126
- key: 'onMediaError',
127
- value: function onMediaError(e) {
128
- console.error('media error', e);
129
- }
130
- }, {
131
- key: 'stopRecording',
132
- value: function stopRecording() {
133
- this.mediaRecorder.stop();
134
- this.setState({
135
- isRecording: false
136
- });
137
- }
138
- }]);
139
-
140
- return DesktopRecorder;
141
- }(_react.Component);
142
-
143
- exports.default = DesktopRecorder;
@@ -1,30 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _react = require('react');
8
-
9
- var _react2 = _interopRequireDefault(_react);
10
-
11
- var _player = require('../player');
12
-
13
- var _player2 = _interopRequireDefault(_player);
14
-
15
- var _recorder = require('../recorder');
16
-
17
- var _recorder2 = _interopRequireDefault(_recorder);
18
-
19
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
-
21
- var RecorderExample = function RecorderExample() {
22
- return _react2.default.createElement(
23
- 'div',
24
- null,
25
- _react2.default.createElement(_recorder2.default, null),
26
- _react2.default.createElement('audio', { controls: true })
27
- );
28
- };
29
-
30
- exports.default = RecorderExample;