java.lang.Object
org.refcodes.audio.AbstractLineOutSampleWriter<SoundSample,LineOutSoundSampleWriter>
org.refcodes.audio.LineOutSoundSampleWriter
- All Implemented Interfaces:
AutoCloseable,BitsPerSampleAccessor,BitsPerSampleAccessor.BitsPerSampleBuilder<LineOutSoundSampleWriter>,BitsPerSampleAccessor.BitsPerSampleMutator,BitsPerSampleAccessor.BitsPerSampleProperty,LineOutSampleWriter<SoundSample,,LineOutSoundSampleWriter> SampleWriter<SoundSample,,LineOutSoundSampleWriter> SamplingRateAccessor,SamplingRateAccessor.SamplingRateBuilder<LineOutSoundSampleWriter>,SamplingRateAccessor.SamplingRateMutator,SamplingRateAccessor.SamplingRateProperty,SoundSampleWriter<LineOutSoundSampleWriter>,org.refcodes.io.RowWriter<SoundSample>
public class LineOutSoundSampleWriter
extends AbstractLineOutSampleWriter<SoundSample,LineOutSoundSampleWriter>
implements SoundSampleWriter<LineOutSoundSampleWriter>
The
LineOutSoundSampleWriter provides means to write sound samples to
a line-out device.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.refcodes.audio.BitsPerSampleAccessor
BitsPerSampleAccessor.BitsPerSampleBuilder<B extends BitsPerSampleAccessor.BitsPerSampleBuilder<B>>, BitsPerSampleAccessor.BitsPerSampleMutator, BitsPerSampleAccessor.BitsPerSamplePropertyNested classes/interfaces inherited from interface org.refcodes.audio.SamplingRateAccessor
SamplingRateAccessor.SamplingRateBuilder<B extends SamplingRateAccessor.SamplingRateBuilder<B>>, SamplingRateAccessor.SamplingRateMutator, SamplingRateAccessor.SamplingRateProperty -
Field Summary
Fields inherited from class org.refcodes.audio.AbstractLineOutSampleWriter
_bitsPerSample, MAX_16_BIT, MAX_8_BIT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()protected SourceDataLineProduces a line-outSourceDataLineinstance for writing samples to.intRetrieves the sampling rate from the sampling rate property.voidsetSamplingRate(int aSamplingRate) Sets the sampling rate for the sampling rate property.withBitsPerSample(BitsPerSample aBitsPerSample) Sets the bits/sample per channel for the bits/sample per channel property.withSamplingRate(int aSamplingRate) Sets the sampling rate for the sampling rate property.voidwriteNext(double... aSampleData) Writes the next samples, one sample for each channel.voidwriteNext(SoundSample aSample) Writes the next samples, one sample for each channel.Methods inherited from class org.refcodes.audio.AbstractLineOutSampleWriter
getBitsPerSample, setBitsPerSample, toLineOut, toWavSampleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.refcodes.audio.BitsPerSampleAccessor.BitsPerSampleProperty
letBitsPerSampleMethods inherited from interface org.refcodes.audio.SamplingRateAccessor.SamplingRateProperty
letSamplingRate
-
Constructor Details
-
LineOutSoundSampleWriter
public LineOutSoundSampleWriter()
-
-
Method Details
-
withBitsPerSample
Sets the bits/sample per channel for the bits/sample per channel property.- Specified by:
withBitsPerSamplein interfaceBitsPerSampleAccessor.BitsPerSampleBuilder<LineOutSoundSampleWriter>- Parameters:
aBitsPerSample- The bits/sample per channel to be stored by the sampling rate property.- Returns:
- The builder for applying multiple build operations.
-
writeNext
Writes the next samples, one sample for each channel. Provide one sample for mono audio, two samples for stereo audio and so on. In case you provide more or less samples than channels being supported by the writer, then it is up to the writer whether to duplicate the samples or calculate an average or the like.- Specified by:
writeNextin interfaceSoundSampleWriter<LineOutSoundSampleWriter>- Parameters:
aSampleData- The samples, one for each channel.- Throws:
IOException- thrown in case writing the sample caused an I/O related problem.
-
writeNext
Writes the next samples, one sample for each channel. Provide one sample for mono audio, two samples for stereo audio and so on. In case you provide more or less samples than channels being supported by the writer, then it is up to the writer whether to duplicate the samples or calculate an average or the like.- Specified by:
writeNextin interfaceorg.refcodes.io.RowWriter<SoundSample>- Specified by:
writeNextin interfaceSampleWriter<SoundSample,LineOutSoundSampleWriter> - Specified by:
writeNextin interfaceSoundSampleWriter<LineOutSoundSampleWriter>- Parameters:
aSample- The samples, one for each channel.- Throws:
IOException- thrown in case writing the sample caused an I/O related problem.
-
getSamplingRate
public int getSamplingRate()Retrieves the sampling rate from the sampling rate property.- Specified by:
getSamplingRatein interfaceSamplingRateAccessor- Returns:
- The sampling rate stored by the sampling rate property.
-
setSamplingRate
public void setSamplingRate(int aSamplingRate) Sets the sampling rate for the sampling rate property.- Specified by:
setSamplingRatein interfaceSamplingRateAccessor.SamplingRateMutator- Parameters:
aSamplingRate- The sampling rate to be stored by the sampling rate property.
-
withSamplingRate
Sets the sampling rate for the sampling rate property.- Specified by:
withSamplingRatein interfaceSamplingRateAccessor.SamplingRateBuilder<LineOutSoundSampleWriter>- Parameters:
aSamplingRate- The sampling rate to be stored by the sampling rate property.- Returns:
- The builder for applying multiple build operations.
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceSampleWriter<SoundSample,LineOutSoundSampleWriter> - Throws:
IOException
-
getLineOut
Produces a line-outSourceDataLineinstance for writing samples to.- Returns:
- The
SourceDataLineupon success. - Throws:
LineUnavailableException- thrown in case the audio-line cannot be acquired.
-