List of usage examples for javax.sound.sampled AudioFileFormat properties
HashMap properties
To view the source code for javax.sound.sampled AudioFileFormat properties.
Click Source Link
From source file:org.apache.tika.parser.audio.AudioParser.java
public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context) throws IOException, SAXException, TikaException { // AudioSystem expects the stream to support the mark feature if (!stream.markSupported()) { stream = new BufferedInputStream(stream); }/*from www. j a v a2 s . c o m*/ stream = new SkipFullyInputStream(stream); try { AudioFileFormat fileFormat = AudioSystem.getAudioFileFormat(stream); Type type = fileFormat.getType(); if (type == Type.AIFC || type == Type.AIFF) { metadata.set(Metadata.CONTENT_TYPE, "audio/x-aiff"); } else if (type == Type.AU || type == Type.SND) { metadata.set(Metadata.CONTENT_TYPE, "audio/basic"); } else if (type == Type.WAVE) { metadata.set(Metadata.CONTENT_TYPE, "audio/vnd.wave"); } AudioFormat audioFormat = fileFormat.getFormat(); int channels = audioFormat.getChannels(); if (channels != AudioSystem.NOT_SPECIFIED) { metadata.set("channels", String.valueOf(channels)); // TODO: Use XMPDM.TRACKS? (see also frame rate in AudioFormat) } float rate = audioFormat.getSampleRate(); if (rate != AudioSystem.NOT_SPECIFIED) { metadata.set("samplerate", String.valueOf(rate)); metadata.set(XMPDM.AUDIO_SAMPLE_RATE, Integer.toString((int) rate)); } int bits = audioFormat.getSampleSizeInBits(); if (bits != AudioSystem.NOT_SPECIFIED) { metadata.set("bits", String.valueOf(bits)); if (bits == 8) { metadata.set(XMPDM.AUDIO_SAMPLE_TYPE, "8Int"); } else if (bits == 16) { metadata.set(XMPDM.AUDIO_SAMPLE_TYPE, "16Int"); } else if (bits == 32) { metadata.set(XMPDM.AUDIO_SAMPLE_TYPE, "32Int"); } } metadata.set("encoding", audioFormat.getEncoding().toString()); // Javadoc suggests that some of the following properties might // be available, but I had no success in finding any: // "duration" Long playback duration of the file in microseconds // "author" String name of the author of this file // "title" String title of this file // "copyright" String copyright message // "date" Date date of the recording or release // "comment" String an arbitrary text addMetadata(metadata, fileFormat.properties()); addMetadata(metadata, audioFormat.properties()); } catch (UnsupportedAudioFileException e) { // There is no way to know whether this exception was // caused by the document being corrupted or by the format // just being unsupported. So we do nothing. } XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata); xhtml.startDocument(); xhtml.endDocument(); }