You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
3.1 KiB
147 lines
3.1 KiB
package com.frank.ffmpeg.mp3;
|
|
|
|
public class Mp3LameBuilder {
|
|
|
|
|
|
public enum Mode {
|
|
STEREO, JSTEREO, MONO, DEFAULT
|
|
}
|
|
|
|
public enum VbrMode {
|
|
VBR_OFF, VBR_RH, VBR_MTRH, VBR_ABR, VBR_DEFAUT
|
|
}
|
|
|
|
|
|
int inSampleRate;
|
|
int outSampleRate;
|
|
int outBitrate;
|
|
int outChannel;
|
|
public int quality;
|
|
int vbrQuality;
|
|
int abrMeanBitrate;
|
|
int lowPassFreq;
|
|
int highPassFreq;
|
|
float scaleInput;
|
|
Mode mode;
|
|
VbrMode vbrMode;
|
|
|
|
String id3tagTitle;
|
|
String id3tagArtist;
|
|
String id3tagAlbum;
|
|
String id3tagComment;
|
|
String id3tagYear;
|
|
|
|
Mp3LameBuilder() {
|
|
|
|
this.id3tagTitle = null;
|
|
this.id3tagAlbum = null;
|
|
this.id3tagArtist = null;
|
|
this.id3tagComment = null;
|
|
this.id3tagYear = null;
|
|
|
|
this.inSampleRate = 44100;
|
|
this.outSampleRate = 0;
|
|
this.outChannel = 2;
|
|
this.outBitrate = 128;
|
|
this.scaleInput = 1;
|
|
|
|
this.quality = 5;
|
|
this.mode = Mode.DEFAULT;
|
|
this.vbrMode = VbrMode.VBR_OFF;
|
|
this.vbrQuality = 5;
|
|
this.abrMeanBitrate = 128;
|
|
|
|
this.lowPassFreq = 0;
|
|
this.highPassFreq = 0;
|
|
}
|
|
|
|
Mp3LameBuilder setQuality(int quality) {
|
|
this.quality = quality;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setInSampleRate(int inSampleRate) {
|
|
this.inSampleRate = inSampleRate;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setOutSampleRate(int outSampleRate) {
|
|
this.outSampleRate = outSampleRate;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setOutBitrate(int bitrate) {
|
|
this.outBitrate = bitrate;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setOutChannels(int channels) {
|
|
this.outChannel = channels;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setId3tagTitle(String title) {
|
|
this.id3tagTitle = title;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setId3tagArtist(String artist) {
|
|
this.id3tagArtist = artist;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setId3tagAlbum(String album) {
|
|
this.id3tagAlbum = album;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setId3tagComment(String comment) {
|
|
this.id3tagComment = comment;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setId3tagYear(String year) {
|
|
this.id3tagYear = year;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setScaleInput(float scaleAmount) {
|
|
this.scaleInput = scaleAmount;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setMode(Mode mode) {
|
|
this.mode = mode;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setVbrMode(VbrMode mode) {
|
|
this.vbrMode = mode;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setVbrQuality(int quality) {
|
|
this.vbrQuality = quality;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setAbrMeanBitrate(int bitrate) {
|
|
this.abrMeanBitrate = bitrate;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setLowpassFreqency(int freq) {
|
|
this.lowPassFreq = freq;
|
|
return this;
|
|
}
|
|
|
|
Mp3LameBuilder setHighpassFreqency(int freq) {
|
|
this.highPassFreq = freq;
|
|
return this;
|
|
}
|
|
|
|
Mp3Lame build() {
|
|
return new Mp3Lame(this);
|
|
}
|
|
|
|
}
|
|
|