Add ogg support

alternate-visualiser
William Toohey 10 years ago
parent 6f3b9552cc
commit 648ecd95f9
  1. 19
      js/ResourcePack.js
  2. 11
      js/SoundManager.js

@ -60,7 +60,7 @@ function Respack(url) {
this.loadFromURL(url);
}
Respack.prototype.audioExtensions = new RegExp("\\.(mp3)$", "i");
Respack.prototype.audioExtensions = new RegExp("\\.(mp3|ogg)$", "i");
Respack.prototype.imageExtensions = new RegExp("\\.(png|gif|jpg|jpeg)$", "i");
Respack.prototype.animRegex = new RegExp("(.*?)_\\d+$");
@ -429,7 +429,20 @@ Respack.prototype.parseSongQueue = function() {
"enabled":true,
"filename":songFile.name,
"charsPerBeat": null};
songFile.getBlob("audio/mpeg3", function(sound) {
var extension = songFile.name.split('.').pop().toLowerCase();
var mime = "";
switch(extension) {
case "mp3":
mime = "audio/mpeg3";
break;
case "ogg":
mime = "audio/ogg";
newSong.noTrim = true;
break;
default:
mime = "application/octet-stream";
}
songFile.getBlob(mime, function(sound) {
// Because blobs are crap
var fr = new FileReader();
fr.onload = function() {
@ -485,7 +498,7 @@ Respack.prototype.parseImageQueue = function() {
Respack.prototype.imageLoadStart = function(imgFile, imageObj) {
var that = this;
var extension = imgFile.name.split('.').pop().toLowerCase();
var mime;
var mime = "";
switch(extension) {
case "png":
mime = "image/png";

@ -82,7 +82,7 @@ function SoundManager(core) {
source.connect( that.context.destination);
// play the file
source.noteOn(0);
source.start(0);
}, false);
}
@ -217,9 +217,9 @@ SoundManager.prototype.getAudioCallback = function(song, isBuild) {
return;
}
if(isBuild) {
that.tmpBuild = that.trimMP3(buffer, song.forceTrim);
that.tmpBuild = that.trimMP3(buffer, song.forceTrim, song.noTrim);
} else {
that.tmpBuffer = that.trimMP3(buffer, song.forceTrim);
that.tmpBuffer = that.trimMP3(buffer, song.forceTrim, song.noTrim);
}
that.onSongLoad(song);
};
@ -246,11 +246,12 @@ SoundManager.prototype.onSongLoad = function(song) {
}
// because MP3 is bad, we nuke silence
SoundManager.prototype.trimMP3 = function(buffer, forceTrim) {
SoundManager.prototype.trimMP3 = function(buffer, forceTrim, noTrim) {
// Firefox has to trim always, Chrome only on PackShit
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
// forceTrim is because PackShit breaks everything
if(!(isFirefox || forceTrim)) {
// noTrim is for oggs
if((!isFirefox && !forceTrim) || noTrim) {
return buffer;
}
var start = LAME_DELAY_START;

Loading…
Cancel
Save