/**
* Sets Gain value. Line should be opened before calling this method. Linear scale 0.0 <--> 1.0 Threshold Coef. : 1/2 to avoid saturation.
*
* @param fGain
*/
public void setGain(float fGain) {
// if (line != null)
// System.out.println(((FloatControl)
// line.getControl(FloatControl.Type.MASTER_GAIN)).getValue())
// Set the value
gain = fGain;
// Better type
if (line != null && line.isControlSupported(FloatControl.Type.MASTER_GAIN))
( (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN) ).setValue((float) ( 20 * Math.log10(fGain <= 0.0 ? 0.0000 : fGain) ));
// OR (Math.log(fGain == 0.0 ? 0.0000 : fGain) / Math.log(10.0))
// if (line != null)
// System.out.println(((FloatControl)
// line.getControl(FloatControl.Type.MASTER_GAIN)).getValue())
}
java类javax.sound.sampled.FloatControl的实例源码
AudioPlayer.java 文件源码
项目:Java-Google-Speech-Recognizer
阅读 27
收藏 0
点赞 0
评论 0
AudioClip.java 文件源码
项目:Mafia
阅读 20
收藏 0
点赞 0
评论 0
private void loadClip() {
try {
clip = AudioSystem.getClip();
InputStream in = getClass().getClassLoader().getResourceAsStream(filePath);
BufferedInputStream bufferedIn = new BufferedInputStream(in);
AudioInputStream audioIn = AudioSystem.getAudioInputStream(bufferedIn);
clip.open(audioIn);
volume = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
} catch (LineUnavailableException | UnsupportedAudioFileException | IOException e) {
e.printStackTrace();
System.exit(-1);
}
}
MultiClip.java 文件源码
项目:opsu-dance
阅读 21
收藏 0
点赞 0
评论 0
/**
* Plays the clip with the specified volume.
* @param volume the volume the play at
* @param listener the line listener
* @throws LineUnavailableException if a clip object is not available or
* if the line cannot be opened due to resource restrictions
*/
public void start(float volume, LineListener listener) throws LineUnavailableException {
Clip clip = getClip();
if (clip == null)
return;
// PulseAudio does not support Master Gain
if (clip.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
// set volume
FloatControl gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
float dB = (float) (Math.log(volume) / Math.log(10.0) * 20.0);
gainControl.setValue(dB);
}
if (listener != null)
clip.addLineListener(listener);
clip.setFramePosition(0);
clip.start();
}
MultiClip.java 文件源码
项目:opsu-dance
阅读 24
收藏 0
点赞 0
评论 0
/**
* Mute the Clip (because destroying it, won't stop it)
*/
public void mute() {
try {
Clip c = getClip();
if (c == null) {
return;
}
float val = (float) (Math.log(Float.MIN_VALUE) / Math.log(10.0) * 20.0);
if (val < -80.0f) {
val = -80.0f;
}
((FloatControl) c.getControl(FloatControl.Type.MASTER_GAIN)).setValue(val);
} catch (IllegalArgumentException ignored) {
} catch (LineUnavailableException e) {
e.printStackTrace();
}
}
SoundNotifier.java 文件源码
项目:MercuryTrade
阅读 18
收藏 0
点赞 0
评论 0
private void play(String wavPath, float db) {
if (!dnd && db > -40) {
ClassLoader classLoader = getClass().getClassLoader();
try (AudioInputStream stream = AudioSystem.getAudioInputStream(classLoader.getResource(wavPath))) {
Clip clip = AudioSystem.getClip();
clip.open(stream);
if (db != 0.0) {
FloatControl gainControl =
(FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(db);
}
clip.start();
} catch (Exception e) {
logger.error("Cannot start playing wav file: ", e);
}
}
}
PreloadedPlayback.java 文件源码
项目:QwickSound
阅读 18
收藏 0
点赞 0
评论 0
/**
* Creates a new {@code PreloadedPlayback}. PreloadedPlayback objects will
* always be created by their associated PreloadedAudio object.
* <p>
* IMPLEMENTATION NOTE: Originally, the fetching of a new {@code Line} was
* done in the {@code run} method, however testing revealed that latency is
* decreased if a {@code Line} is acquired ahead of time, here in the
* constructor.
*
* @param audio
* The {@code Audio} that created this {@code PreloadedPlayback}.
* @param audioFormat
* Specifies the particular arrangement of audio data.
* @param audioBytes
* Holds the audio data from which a {@code Clip} will be
* created.
* @param instanceID
* The {@code instanceID} of this {@code PreloadedPlayback}.
*/
protected PreloadedPlayback(Audio audio, AudioFormat audioFormat,
byte[] audioBytes, long instanceID) {
super(audio, instanceID);
DataLine.Info info = new DataLine.Info(Clip.class, audioFormat);
try {
clip = (Clip) AudioSystem.getLine(info);
clip.open(audioFormat, audioBytes, 0, audioBytes.length);
if (clip.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
volCtrl = (FloatControl) clip
.getControl(FloatControl.Type.MASTER_GAIN);
} else {
logger.warning("Master-Gain control is not supported."
+ " Volume will be fixed at the default level.");
}
} catch (LineUnavailableException ex) {
ex.printStackTrace();
}
clip.addLineListener(this);
}
StreamingPlayback.java 文件源码
项目:QwickSound
阅读 17
收藏 0
点赞 0
评论 0
/**
* Creates a new {@code StreamingPlayback}. StreamingPlayback objects will
* always be created by their associated StreamingAudio object.
*
* @param audio
* The {@code Audio} that created this {@code StreamingPlayback}.
* @param audioInStream
* The {@code AudioInputStream} used by this
* {@code StreamingPlayback}.
* @param instanceID
* The {@code instanceID} of this {@code StreamingPlayback}.
*/
protected StreamingPlayback(Audio audio, AudioInputStream audioInStream,
long instanceID) {
super(audio, instanceID);
this.audioInStream = audioInStream;
AudioFormat audioFormat = audioInStream.getFormat();
DataLine.Info info = new DataLine.Info(SourceDataLine.class,
audioFormat);
try {
line = (SourceDataLine) AudioSystem.getLine(info);
if (line != null) {
line.open(audioFormat);
}
if (line.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
volCtrl = (FloatControl) line
.getControl(FloatControl.Type.MASTER_GAIN);
} else {
logger.warning("Master-Gain control is not supported."
+ " Volume will be fixed at the default level.");
}
} catch (LineUnavailableException ex) {
ex.printStackTrace();
}
}
SoundClip.java 文件源码
项目:Side-Quest-City
阅读 17
收藏 0
点赞 0
评论 0
public SoundClip(String path) {
try {
InputStream audioSrc = getClass().getResourceAsStream(path);
InputStream bufferedIn = new BufferedInputStream(audioSrc);
AudioInputStream ais = AudioSystem.getAudioInputStream(bufferedIn);
AudioFormat baseFormat = ais.getFormat();
AudioFormat decodeFormat = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
baseFormat.getSampleRate(), 16, baseFormat.getChannels(),
baseFormat.getChannels() * 2, baseFormat.getSampleRate(),
false);
AudioInputStream dais = AudioSystem.getAudioInputStream(decodeFormat, ais);
clip = AudioSystem.getClip();
clip.open(dais);
gainControl = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
} catch (Exception e) {
e.printStackTrace();
}
}
Player.java 文件源码
项目:MakamBox
阅读 32
收藏 0
点赞 0
评论 0
public void setPlayer(Wavefile af) throws Exception{
clip = af.getClip();
clip.open();
fullLength = clip.getFrameLength();
endPoint = fullLength;
gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
playing = false;
clip.addLineListener(new LineListener(){
@Override
public void update(LineEvent arg0) {
while(playing){
int tempframe = clip.getFramePosition();
MakamBoxAnalysis.positionSlide.setValue(tempframe);
if (stopbutton!=null&&tempframe == fullLength){
stopbutton.doClick();
} else if(stopbutton!=null && tempframe>=endPoint){
playAgain();
} else if (tempframe == fullLength){
stop();
}
}
}
});
}
PlaySoundActionImpl.java 文件源码
项目:raspberry-pi-api
阅读 18
收藏 0
点赞 0
评论 0
@Override
public void invokeAction(final PiAction action) throws RaspberryPiAppException {
final String soundFile = baseSoundDirectory + action.getValue();
LOGGER.debug("Playing sound file: '{}'", soundFile);
try {
final AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(
new File(soundFile));
final Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
// play at maximum volume
final FloatControl gainControl =
(FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(gainControl.getMaximum());
clip.start();
} catch (Exception e) {
throw new RaspberryPiAppException(e.getMessage(), e);
}
}
VNSound.java 文件源码
项目:VN-RW
阅读 18
收藏 0
点赞 0
评论 0
/**
* Constructor that starts off the VNSound tool with a sound at a certain volume. Will not loop.
*
* @param file - the file path and name of the audio to play
* @param volume - volume to play the file at
*/
public VNSound(File file, float volume) {
try {
audio = AudioSystem.getAudioInputStream(file);
clip = AudioSystem.getClip();
clip.open(audio);
volumeControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
setVolume(volume);
clip.start();
}
catch(UnsupportedAudioFileException uae) {
System.out.println(uae);
}
catch(IOException ioe) {
System.out.println(ioe);
}
catch(LineUnavailableException lua) {
System.out.println(lua);
}
}
VNSound.java 文件源码
项目:VN-RW
阅读 16
收藏 0
点赞 0
评论 0
/**
* Opens a new sound and replaces the old one. If object is set to loop the sound (isLoop = true) then it will loop
*
* @param file - the file path and name of the audio to play
*/
public void open(File file) {
try {
clip.stop();
clip.close();
audio = AudioSystem.getAudioInputStream(file);
clip.open(audio);
volumeControl = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
clip.start();
if(isLoop)
clip.loop(Clip.LOOP_CONTINUOUSLY);
else
clip.loop(0);
}
catch(UnsupportedAudioFileException uae) {
System.out.println(uae);
}
catch(IOException ioe) {
System.out.println(ioe);
System.out.println(file);
}
catch(LineUnavailableException lua) {
System.out.println(lua);
}
}
VNSound.java 文件源码
项目:VN-RW
阅读 20
收藏 0
点赞 0
评论 0
/**
* Will open a new file for a certain volume.
*
* @param file - File of audio to open
* @param volume - Volume of audio to play from 100 to 0
*/
public void open(File file, float volume) {
try {
clip.stop();
clip.close();
audio = AudioSystem.getAudioInputStream(file);
clip.open(audio);
volumeControl = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
setVolume(volume);
clip.start();
if(isLoop)
clip.loop(Clip.LOOP_CONTINUOUSLY);
else
clip.loop(0);
}
catch(UnsupportedAudioFileException uae) {
System.out.println(uae);
}
catch(IOException ioe) {
System.out.println(ioe);
System.out.println(file);
}
catch(LineUnavailableException lua) {
System.out.println(lua);
}
}
AudioPlayer.java 文件源码
项目:BotLibre
阅读 24
收藏 0
点赞 0
评论 0
/**
* Sets Gain value. Line should be opened before calling this method. Linear scale 0.0 <--> 1.0 Threshold Coef. : 1/2 to avoid saturation.
*
* @param fGain
*/
public void setGain(float fGain) {
// if (line != null)
// System.out.println(((FloatControl)
// line.getControl(FloatControl.Type.MASTER_GAIN)).getValue())
// Set the value
gain = fGain;
// Better type
if (line != null && line.isControlSupported(FloatControl.Type.MASTER_GAIN))
( (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN) ).setValue((float) ( 20 * Math.log10(fGain <= 0.0 ? 0.0000 : fGain) ));
// OR (Math.log(fGain == 0.0 ? 0.0000 : fGain) / Math.log(10.0))
// if (line != null)
// System.out.println(((FloatControl)
// line.getControl(FloatControl.Type.MASTER_GAIN)).getValue())
}
DefaultSoundEffect.java 文件源码
项目:zmpp-wandora
阅读 18
收藏 0
点赞 0
评论 0
/**
* Sets the volume.
*
* @param vol the volume
*/
private void setVolume(final int vol) {
int volume = vol;
if (volume < 0) {
volume = MAX_VOLUME;
}
float gainDb = 0.0f;
final FloatControl gain = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
if (volume == 0) {
gainDb = gain.getMinimum();
} else if (volume < MAX_VOLUME) {
// The volume algorithm is subtractive: The implementation assumes that
// the sound is already at maximum volume, so we avoid distortion by
// making the amplitude values
// The scaling factor for the volume would be 20 normally, but
// it seems that 13 is better
gainDb = (float) (Math.log10(MAX_VOLUME - volume) * 13.0);
}
gain.setValue(-gainDb);
}
StationPlayer.java 文件源码
项目:SoundCenterClient
阅读 18
收藏 0
点赞 0
评论 0
private void init(AudioFormat baseFormat) throws LineUnavailableException {
decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(), 16, baseFormat.getChannels(),
baseFormat.getChannels() * 2, baseFormat.getSampleRate(), false);
DataLine.Info info = new DataLine.Info(SourceDataLine.class, decodedFormat);
line = (SourceDataLine) AudioSystem.getLine(info);
line.open(decodedFormat);
volumeControl = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
minGainDB = volumeControl.getMinimum();
ampGainDB = ((10.0f / 20.0f) * volumeControl.getMaximum()) - volumeControl.getMinimum();
cste = Math.log(10.0) / 20;
//for stations we want to set the initial volume to 0
volumeControl.setValue((float) minGainDB);
line.start();
//App.logger.d("prefix + WebPlayer SourceDataLine started!", null);
}
SingleSongPlayer.java 文件源码
项目:SoundCenterClient
阅读 15
收藏 0
点赞 0
评论 0
private void init(AudioFormat baseFormat) throws LineUnavailableException {
decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(), 16, baseFormat.getChannels(),
baseFormat.getChannels() * 2, baseFormat.getSampleRate(), false);
DataLine.Info info = new DataLine.Info(SourceDataLine.class, decodedFormat);
line = (SourceDataLine) AudioSystem.getLine(info);
line.open(decodedFormat);
volumeControl = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
minGainDB = volumeControl.getMinimum();
ampGainDB = ((10.0f / 20.0f) * volumeControl.getMaximum()) - volumeControl.getMinimum();
cste = Math.log(10.0) / 20;
line.start();
//App.logger.d("prefix + WebPlayer SourceDataLine started!", null);
}
VoicePlayer.java 文件源码
项目:SoundCenterClient
阅读 18
收藏 0
点赞 0
评论 0
private void init() {
AudioFormat speexFormat = new AudioFormat(16000, 16, 1, true, false);
DataLine.Info sourceLineInfo = new DataLine.Info(SourceDataLine.class, speexFormat, bufferSize);
speexDecoder.init(1, 16000, 1, false);
try {
line = (SourceDataLine) AudioSystem.getLine(sourceLineInfo);
line.open(speexFormat, bufferSize);
volumeControl = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
minGainDB = volumeControl.getMinimum();
ampGainDB = ((10.0f / 20.0f) * volumeControl.getMaximum()) - volumeControl.getMinimum();
cste = Math.log(10.0) / 20;
volumeControl.setValue((float) minGainDB);
line.start();
} catch (LineUnavailableException e) {
App.logger.w("Failed to create voice player (type: " + type + " id: " + playerId + "):" , e);
if (!exit)
close(false);
}
}
MultiClip.java 文件源码
项目:opsu
阅读 24
收藏 0
点赞 0
评论 0
/**
* Plays the clip with the specified volume.
* @param volume the volume the play at
* @param listener the line listener
* @throws LineUnavailableException if a clip object is not available or
* if the line cannot be opened due to resource restrictions
*/
public void start(float volume, LineListener listener) throws LineUnavailableException {
Clip clip = getClip();
if (clip == null)
return;
// PulseAudio does not support Master Gain
if (clip.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
// set volume
FloatControl gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
float dB = (float) (Math.log(volume) / Math.log(10.0) * 20.0);
gainControl.setValue(Utils.clamp(dB, gainControl.getMinimum(), gainControl.getMaximum()));
} else if (clip.isControlSupported(FloatControl.Type.VOLUME)) {
// The docs don't mention what unit "volume" is supposed to be,
// but for PulseAudio it seems to be amplitude
FloatControl volumeControl = (FloatControl) clip.getControl(FloatControl.Type.VOLUME);
float amplitude = (float) Math.sqrt(volume) * volumeControl.getMaximum();
volumeControl.setValue(Utils.clamp(amplitude, volumeControl.getMinimum(), volumeControl.getMaximum()));
}
if (listener != null)
clip.addLineListener(listener);
clip.setFramePosition(0);
clip.start();
}
SoundEngine.java 文件源码
项目:PokerFace
阅读 50
收藏 0
点赞 0
评论 0
public void setVolume(float volume)
{
float max = ((FloatControl)check.getControl(FloatControl.Type.MASTER_GAIN)).getMaximum();
float min = ((FloatControl)check.getControl(FloatControl.Type.MASTER_GAIN)).getMinimum();
volume = todB(volume);
if (volume > max)
{
volume = max;
}
if (volume < min)
{
volume = min;
}
this.volume = volume;
((FloatControl)check.getControl(FloatControl.Type.MASTER_GAIN)).setValue(volume);
((FloatControl)call.getControl(FloatControl.Type.MASTER_GAIN)).setValue(volume);
((FloatControl)allin.getControl(FloatControl.Type.MASTER_GAIN)).setValue(volume);
((FloatControl)bet.getControl(FloatControl.Type.MASTER_GAIN)).setValue(volume);
((FloatControl)fold.getControl(FloatControl.Type.MASTER_GAIN)).setValue(volume);
((FloatControl)win.getControl(FloatControl.Type.MASTER_GAIN)).setValue(volume);
((FloatControl)lose.getControl(FloatControl.Type.MASTER_GAIN)).setValue(volume);
((FloatControl)raise.getControl(FloatControl.Type.MASTER_GAIN)).setValue(volume);
}
Sound.java 文件源码
项目:GameUtils
阅读 27
收藏 0
点赞 0
评论 0
/**
* Plays the Clip. If the sound is off, the volume is set to the minimum.
* @param name The name of the Clip to play.
*/
public void play(String name) {
Clip c = get(name);
if(c != null) {
c.stop();
c.flush();
c.setFramePosition(0);
if(!on) {
FloatControl volume = (FloatControl)c.getControl(FloatControl.Type.MASTER_GAIN);
volume.setValue(volume.getMinimum());
}
c.start();
}
}
Sound.java 文件源码
项目:GameUtils
阅读 24
收藏 0
点赞 0
评论 0
/**
* Loops the Clip. If the sound is off, the volume is set to the minimum.
* @param name The name of the Clip to loop.
*/
public void loop(String name) {
Clip c = get(name);
if(c != null) {
c.stop();
c.flush();
c.setFramePosition(0);
if(!on) {
FloatControl volume = (FloatControl)c.getControl(FloatControl.Type.MASTER_GAIN);
volume.setValue(volume.getMinimum());
}
c.loop(Clip.LOOP_CONTINUOUSLY);
}
}
JavaDefaultSoundManager.java 文件源码
项目:monkey-shines-java-port
阅读 68
收藏 0
点赞 0
评论 0
/**
*
* Automatically called on construction and game setting change to match clip volume to
* user defined levels.
*
* @param value
* percentage to set music volume to
*
*/
private void setSoundVolume(int value) {
if (value == 0) {
soundOff = true;
return;
}
soundOff = false;
float decibelLevelOffset = SoundUtils.resolveDecibelOffsetFromPercentage(value);
System.out.println("Decibel offset for sound: " + decibelLevelOffset);
for (GameSoundEffect effect : GameSoundEffect.values() ) {
Optional<Clip> clip = sounds.get(effect);
if (clip.isPresent() ) {
FloatControl gainControl = (FloatControl)
clip.get().getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(decibelLevelOffset);
}
}
}
Controller.java 文件源码
项目:romanov
阅读 20
收藏 0
点赞 0
评论 0
/** @invisible
*
* Prints the available controls and their ranges to the console. Not all
* Controllers have all of the controls available on them so this is a way to find
* out what is available.
*
*/
public void printControls()
{
if (controls.length > 0)
{
System.out.println("Available controls are:");
for (int i = 0; i < controls.length; i++)
{
Control.Type type = controls[i].getType();
System.out.print(" " + type.toString());
if (type == VOLUME || type == GAIN || type == BALANCE || type == PAN)
{
FloatControl fc = (FloatControl) controls[i];
String shiftSupported = "does";
if (fc.getUpdatePeriod() == -1)
{
shiftSupported = "doesn't";
}
System.out.println(", which has a range of " + fc.getMaximum() + " to "
+ fc.getMinimum() + " and " + shiftSupported
+ " support shifting.");
}
else
{
System.out.println("");
}
}
}
else
{
System.out.println("There are no controls available.");
}
}
Controller.java 文件源码
项目:romanov
阅读 28
收藏 0
点赞 0
评论 0
private float getValue(FloatControl.Type type)
{
float v = 0;
if (hasControl(type))
{
FloatControl c = (FloatControl) getControl(type);
v = c.getValue();
}
else
{
Minim.error(type.toString() + " is not supported.");
}
return v;
}
Controller.java 文件源码
项目:romanov
阅读 31
收藏 0
点赞 0
评论 0
private void setValue(FloatControl.Type type, float v)
{
if (hasControl(type))
{
FloatControl c = (FloatControl) getControl(type);
if (v > c.getMaximum())
v = c.getMaximum();
else if (v < c.getMinimum()) v = c.getMinimum();
c.setValue(v);
}
else
{
Minim.error(type.toString() + " is not supported.");
}
}
AudioPlayer.java 文件源码
项目:airsonic
阅读 29
收藏 0
点赞 0
评论 0
public AudioPlayer(InputStream in, Listener listener) throws Exception {
this.in = in;
this.listener = listener;
AudioFormat format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100.0F, 16, 2, 4, 44100.0F, true);
line = AudioSystem.getSourceDataLine(format);
line.open(format);
LOG.debug("Opened line " + line);
if (line.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
gainControl = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
setGain(DEFAULT_GAIN);
}
new AudioDataWriter();
}
ExtendedClip.java 文件源码
项目:JuggleMasterPro
阅读 19
收藏 0
点赞 0
评论 0
final public float getVolume(int intPvolumePercentage) throws Throwable {
if (this.objGclip != null && this.objGclip.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
final FloatControl objLvolumeFloatControl = (FloatControl) this.objGclip.getControl(FloatControl.Type.MASTER_GAIN);
final float fltLrange = (objLvolumeFloatControl.getMaximum() - objLvolumeFloatControl.getMinimum()) * 1.2F;
return Math.min(fltLrange * Math.max(0, intPvolumePercentage) / 100.0F + objLvolumeFloatControl.getMinimum(),
objLvolumeFloatControl.getMaximum());
}
throw new Throwable();
}
ExtendedClip.java 文件源码
项目:JuggleMasterPro
阅读 19
收藏 0
点赞 0
评论 0
final public void setBalance(int intPbalancePercentage) {
if (this.objGclip != null && this.objGclip.isControlSupported(FloatControl.Type.PAN)) {
try {
final FloatControl objLbalanceFloatControl = (FloatControl) this.objGclip.getControl(FloatControl.Type.PAN);
objLbalanceFloatControl.setValue(Math.max(-100, Math.min(intPbalancePercentage, 100)) / 100.0F);
} catch (final Throwable objPthrowable) {
Tools.err("Error while setting sound balance : ", Constants.strS_FILE_SOUND_NAME_A[this.bytGsoundFileIndex]);
}
}
}
ExtendedClip.java 文件源码
项目:JuggleMasterPro
阅读 21
收藏 0
点赞 0
评论 0
final public void setVolume(int intPvolumePercentage) {
try {
final float fltLvolume = this.getVolume(intPvolumePercentage);
final FloatControl objLvolumeFloatControl = (FloatControl) this.objGclip.getControl(FloatControl.Type.MASTER_GAIN);
objLvolumeFloatControl.setValue(fltLvolume);
} catch (final Throwable objPthrowable) {
Tools.err("Error while setting sound volume : ", Constants.strS_FILE_SOUND_NAME_A[this.bytGsoundFileIndex]);
}
}