source: gs3-extensions/web-audio/trunk/js-mad/jsmad-master/experiments/src/mp3file.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: 1.3 KB
Line 
1Mad.MP3File = function(stream) {
2 this.stream = stream;
3}
4
5Mad.MP3File.prototype.getID3v2Header = function() {
6 if (this.stream.strEquals(0, "ID3")) {
7 var headerStream = this.stream.substream(0, 10);
8
9 headerStream.seek(3); // 'ID3'
10
11 var major = headerStream.readU8();
12 var minor = headerStream.readU8();
13
14 var flags = headerStream.readU8();
15
16 var length = headerStream.readSyncInteger();
17
18 return { version: '2.' + major + '.' + minor, major: major, minor: minor, flags: flags, length: length };
19 } else {
20 return null;
21 }
22}
23
24Mad.MP3File.prototype.getID3v2Stream = function() {
25 var header = this.getID3v2Header();
26
27 if (header) {
28 if (header.major > 2) {
29 return new Mad.ID3v23Stream(header, this.stream.substream(10, header.length));
30 } else {
31 return new Mad.ID3v22Stream(header, this.stream.substream(10, header.length));
32 }
33 } else {
34 return null;
35 }
36}
37
38Mad.MP3File.prototype.getMpegStream = function() {
39 var id3header = this.getID3v2Header();
40
41 if (id3header) {
42 var offset = 10 + id3header.length;
43 } else {
44 var offset = 0;
45 }
46
47 var length = this.stream.length - offset;
48
49 return new Mad.Stream(this.stream.substream(offset), length);
50}
Note: See TracBrowser for help on using the repository browser.