public static BigInteger getBextTimeReference(long sampleRate) { return BigInteger.valueOf(sampleRate).multiply( RcBwfWriteExample.getSecondsSinceMidnight()); }
private static String formatTime(long ms) { 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; String s = padl(Integer.toString(hours), 2, '0') + ":"; s += padl(Integer.toString(min), 2, '0') + ":"; s += padl(Integer.toString(sec), 2, '0') + "."; s += padl(Long.toString(ms), 3, '0'); return s; }
public static void main(String args[]) { try { File waveFile = new File(args[0]); RcListMarkersExample.listMarkers(waveFile); } catch (Throwable t) { t.printStackTrace(); } }
RcBwfWriteExample.setExampleWaveInfoData(rcRiffBwf); RcBwfWriteExample.setExampleAXmlData(rcRiffBwf); RcBwfWriteExample.setExampleBroadcastAudioExtensionData(rcRiffBwf); RcBwfWriteExample.setExampleMarkerChunk( rcRiffBwf, positionInMilliseconds, RcBwfWriteExample.setExampleMarkerChunk( rcRiffBwf, positionInMilliseconds,
public static void setExampleBroadcastAudioExtensionData(RcRiffBwf rcRiffBwf) throws RcBwfException { RcRiffBextChunk rcRiffBextChunk = new RcRiffBextChunk(); rcRiffBwf.setRcRiffBextChunk(rcRiffBextChunk); long sampleRate = rcRiffBwf.getRcRiffFmtChunk().getSamplesPerSec(); rcRiffBextChunk.setDescription("Example description"); rcRiffBextChunk.setOriginator("Example originator"); rcRiffBextChunk.setOriginatorReference("Example originator reference"); // Next 3 set to current date / time only for example rcRiffBextChunk.setOriginationDate(RcBwfWriteExample.getBextDate()); rcRiffBextChunk.setOriginationTime(RcBwfWriteExample.getBextTime()); rcRiffBextChunk.setOriginationTimeReference( RcBwfWriteExample.getBextTimeReference(sampleRate)); byte umid[] = new byte[64]; Arrays.fill(umid, (byte) 0x0); rcRiffBextChunk.setUmid(umid); }
public static void main(String args[]) { try { File f = new File(args[0]); RcRiffBwf rcRiffBwf = new RcRiffBwf(f); rcRiffBwf.open(); RcBwfInfoExample.printBwfInfo(rcRiffBwf); rcRiffBwf.close(); } catch (Throwable t) { t.printStackTrace(); } }
public static void setExampleAXmlData(RcRiffBwf rcRiffBwf) throws DatatypeConfigurationException, TransformerException, ParserConfigurationException, IOException, RcAudioMdException { // Create example audioMD RcAudioMd rcAudioMd = RcBwfWriteExample.getRcAudioMd(rcRiffBwf); boolean prefixed = true; String audioMdXml = rcAudioMd.marshalToString(prefixed); // Create and set axml chunk RcRiffAXmlChunk rcRiffAXmlChunk = new RcRiffAXmlChunk(); rcRiffAXmlChunk.setAXml(audioMdXml); rcRiffBwf.setRcRiffAXmlChunk(rcRiffAXmlChunk); }
public static void listMarkers(File waveFile) throws IOException { RcRiffBwf rcRiffBwf = new RcRiffBwf(waveFile); rcRiffBwf.open(); RcRiffMarkerChunk rcRiffMarkerChunk = rcRiffBwf.getRcRiffMarkerChunk(); int sampleRate = (int) rcRiffBwf.getRcRiffFmtChunk().getSamplesPerSec(); int channels = rcRiffBwf.getRcRiffFmtChunk().getChannels(); long ms; if (rcRiffMarkerChunk != null) { for (RcRiffMarkerEntry e : rcRiffMarkerChunk.getMarkerEntries()) { ms = Math.round((double) e.getSampleOffset().longValue() / (sampleRate / 1000D) / (double) channels); System.out.println(e.getLabelText() + " @ " + formatTime(ms)); } System.out.println("\n" + rcRiffMarkerChunk.getMarkerEntries().size() + " marker entries"); } else { System.out.println("No marker chunk was found."); } rcRiffBwf.close(); }