public XMLGregorianCalendar getXmlDuration() throws DatatypeConfigurationException { long dataSize = this.getRcRiffDataChunk().getChunkSize(); long blockSize = this.getRcRiffFmtChunk().getBlockAlign(); long numSampleFrames = dataSize / blockSize; long samplesPerSec = this.getRcRiffFmtChunk().getSamplesPerSec(); long ms = (long) (numSampleFrames / (samplesPerSec / 1000D)); int hours = (int) (ms / (60 * 60 * 1000)); ms -= hours * 60 * 60 * 1000; int min = (int) (ms / (60 * 1000)); ms -= min * 60 * 1000; int sec = (int) (ms / 1000); ms -= sec * 1000; XMLGregorianCalendar duration = DatatypeFactory.newInstance().newXMLGregorianCalendarTime(hours, min, sec, (int) ms, DatatypeConstants.FIELD_UNDEFINED); return duration; }
int blockAlign = rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(); int sampleRate = (int) rcRiffBwf.getRcRiffFmtChunk().getSamplesPerSec();
System.out.println("\tSamples per sec: " + rcRiffFmtChunk.getSamplesPerSec()); System.out.println("\tAvg bytes per sec: " + rcRiffFmtChunk.getAvgBytesPerSec()); System.out.println("\tBlock align: " + rcRiffFmtChunk.getBlockAlign()); System.out.println("\tBits per sample: " + rcRiffFmtChunk.getBitsPerSample());
int blockAlign = rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(); long byteOffset = Math.round(markerPosMs * (sampleRate / 1000D) * blockAlign); rcRiffMarkerEntry.setByteOffset(BigInteger.valueOf(byteOffset));
chunkDataSize += RcRiffFile.writeUnsignedShort(out, this.getBlockAlign());
(int) rcRiffBwf.getRcRiffFmtChunk().getSamplesPerSec(), rcRiffBwf.getRcRiffFmtChunk().getBitsPerSample(), rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(), (rcRiffBwf.getRcRiffDataChunk().getChunkSize() / rcRiffBwf.getRcRiffFmtChunk().getBlockAlign()) / (rcRiffBwf.getRcRiffFmtChunk().getSamplesPerSec() / 1000), observer, objIdx,
(int) rcRiffBwf.getRcRiffFmtChunk().getSamplesPerSec(), rcRiffBwf.getRcRiffFmtChunk().getBitsPerSample(), rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(), (rcRiffBwf.getRcRiffDataChunk().getChunkSize() / rcRiffBwf.getRcRiffFmtChunk().getBlockAlign()) / (rcRiffBwf.getRcRiffFmtChunk().getSamplesPerSec() / 1000), observer, objIndex,
int blockSize = rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(); int channels = rcRiffBwf.getRcRiffFmtChunk().getChannels(); long numSampleFrames = dataSize / (long) blockSize / (long) channels;
int blockSize = rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(); int channels = rcRiffBwf.getRcRiffFmtChunk().getChannels(); long numSampleFrames = dataSize / (long) blockSize / (long) channels;
long blockSize = rcRiffBwf.getRcRiffFmtChunk().getBlockAlign(); long channels = rcRiffBwf.getRcRiffFmtChunk().getChannels(); long numSampleFrames = dataSize / blockSize / channels;