本文整理汇总了Java中com.xuggle.xuggler.IAudioSamples.make方法的典型用法代码示例。如果您正苦于以下问题:Java IAudioSamples.make方法的具体用法?Java IAudioSamples.make怎么用?Java IAudioSamples.make使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.xuggle.xuggler.IAudioSamples
的用法示例。
在下文中一共展示了IAudioSamples.make方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: onAudioSamples
import com.xuggle.xuggler.IAudioSamples; //导入方法依赖的package包/类
@Override
public void onAudioSamples(IAudioSamplesEvent event) {
IAudioSamples samples = event.getAudioSamples();
if (audioResampler == null) {
audioResampler = IAudioResampler.make(1, samples.getChannels(),
16000, samples.getSampleRate());
}
if (event.getAudioSamples().getNumSamples() > 0) {
IAudioSamples out = IAudioSamples.make(samples.getNumSamples(),
samples.getChannels());
audioResampler.resample(out, samples, samples.getNumSamples());
AudioSamplesEvent asc = new AudioSamplesEvent(event.getSource(),
out, event.getStreamIndex());
super.onAudioSamples(asc);
out.delete();
}
}
示例2: initialize
import com.xuggle.xuggler.IAudioSamples; //导入方法依赖的package包/类
/**
* Initializes the reader thread with the given media.
* @param container the media container
* @param videoCoder the media video decoder
* @param audioCoder the media audio decoder
* @param audioConversions the flag(s) for any audio conversions to must take place
*/
public void initialize(IContainer container, IStreamCoder videoCoder, IStreamCoder audioCoder, int audioConversions) {
// assign the local variables
this.outputWidth = 0;
this.outputHeight = 0;
this.videoConversionEnabled = false;
this.scale = false;
this.container = container;
this.videoCoder = videoCoder;
this.audioCoder = audioCoder;
this.audioConversions = audioConversions;
// create a packet for reading
this.packet = IPacket.make();
// create the image converter for the video
if (videoCoder != null) {
this.width = this.videoCoder.getWidth();
this.height = this.videoCoder.getHeight();
IPixelFormat.Type type = this.videoCoder.getPixelType();
this.picture = IVideoPicture.make(type, this.width, this.height);
BufferedImage target = new BufferedImage(this.width, this.height, BufferedImage.TYPE_3BYTE_BGR);
this.videoConverter = ConverterFactory.createConverter(target, type);
}
// create a resuable container for the samples
if (audioCoder != null) {
this.samples = IAudioSamples.make(1024, this.audioCoder.getChannels());
}
}
示例3: onAudioSamples
import com.xuggle.xuggler.IAudioSamples; //导入方法依赖的package包/类
/** {@inheritDoc} */
@Override
public void onAudioSamples(IAudioSamplesEvent event) {
IAudioSamples samples = event.getAudioSamples();
if (samples.getSampleRate() != rate || samples.getChannels() != channels) {
log.debug("SampleRateAdjustTool onAudioSamples");
if (resampler == null) {
// http://build.xuggle.com/view/Stable/job/xuggler_jdk5_stable/javadoc/java/api/com/xuggle/xuggler/IAudioResampler.html
resampler = IAudioResampler.make(channels, samples.getChannels(), rate, samples.getSampleRate(), IAudioSamples.Format.FMT_S16, samples.getFormat());
log.info("Resampled formats - input: {} output: {}", resampler.getInputFormat(), resampler.getOutputFormat());
}
long sampleCount = samples.getNumSamples();
if (resampler != null && sampleCount > 0) {
log.trace("In - samples: {} rate: {} channels: {}", sampleCount, samples.getSampleRate(), samples.getChannels());
IAudioSamples out = IAudioSamples.make(sampleCount, channels);
resampler.resample(out, samples, sampleCount);
log.trace("Out - samples: {} rate: {} channels: {}", out.getNumSamples(), out.getSampleRate(), out.getChannels());
// queue audio
facade.queueAudio(out, event.getTimeStamp(), event.getTimeUnit());
//out.delete();
samples.delete();
} else {
facade.queueAudio(samples, event.getTimeStamp(), event.getTimeUnit());
}
log.debug("SampleRateAdjustTool onAudioSamples - end");
} else {
facade.queueAudio(samples, event.getTimeStamp(), event.getTimeUnit());
}
}