ezvcard.types
Class SoundType

java.lang.Object
  extended by ezvcard.types.VCardType
      extended by ezvcard.types.BinaryType<SoundTypeParameter>
          extended by ezvcard.types.SoundType
All Implemented Interfaces:
Comparable<VCardType>

public class SoundType
extends BinaryType<SoundTypeParameter>

A sound to attach to the vCard, such as a pronunciation of the person's name.

Adding a sound

 VCard vcard = new VCard();
 
 //URL
 SoundType sound = new SoundType("http://www.mywebsite.com/myname.ogg", SoundTypeParameter.OGG);
 vcard.addSound(sound);
 
 //binary data
 byte data[] = ...
 sound = new SoundType(data, SoundTypeParameter.OGG);
 vcard.addSound(sound);
 
 //if "SoundTypeParameter" does not have the pre-defined constant that you need, then create a new instance
 //arg 1: the value of the 2.1/3.0 TYPE parameter
 //arg 2: the value to use for the 4.0 MEDIATYPE parameter and for 4.0 data URIs
 //arg 3: the file extension of the data type (optional)
 SoundTypeParameter param = new SoundTypeParameter("wav", "audio/wav", "wav");
 sound = new SoundType("http://www.mywebsite.com/myname.wav", SoundTypeParameter.WAV);
 vcard.addSound(sound);
 

Getting the sounds

 VCard vcard = ...
 
 int fileCount = 0;
 for (SoundType sound : vcard.getSounds()){
   //the sound will have either a URL or a binary data
   if (sound.getData() == null){
     System.out.println("Sound URL: " + sound.getUrl());
   } else {
     SoundTypeParameter type = sound.getContentType();
     
     if (type == null) {
       //the vCard may not have any content type data associated with the sound
       System.out.println("Saving a sound file...");
     } else {
       System.out.println("Saving a \"" + type.getMediaType() + "\" file...");
     }
     
     String folder;
     if (type == SoundTypeParameter.OGG){ //it is safe to use "==" instead of "equals()"
       folder = "ogg-files";
     } else {
       folder = "sound-files";
     }
     
     byte data[] = sound.getData();
     String filename = "sound" + fileCount;
     if (type != null && type.getExtension() != null){
        filename += "." + type.getExtension();
     }
     OutputStream out = new FileOutputStream(new File(folder, filename));
     out.write(data);
     out.close();
     fileCount++;
   }
 }
 

vCard property name: SOUND

vCard versions: 2.1, 3.0, 4.0

Author:
Michael Angstadt

Field Summary
static String NAME
           
 
Fields inherited from class ezvcard.types.BinaryType
contentType, data, url
 
Fields inherited from class ezvcard.types.VCardType
group, subTypes, typeName
 
Constructor Summary
SoundType()
           
SoundType(byte[] data, SoundTypeParameter type)
           
SoundType(File file, SoundTypeParameter type)
           
SoundType(InputStream in, SoundTypeParameter type)
           
SoundType(String url, SoundTypeParameter type)
           
 
Method Summary
protected  SoundTypeParameter buildMediaTypeObj(String mediaType)
          Builds a MediaTypeParameter object based on the information in the MEDIATYPE parameter or data URI of 4.0 vCards.
protected  SoundTypeParameter buildTypeObj(String type)
          Builds a MediaTypeParameter object based on the value of the TYPE parameter in 2.1/3.0 vCards.
protected  void doUnmarshalHtml(HCardElement element, List<String> warnings)
          Unmarshals the type from an hCard (HTML document).
 String getLanguage()
          Gets the language.
 void setLanguage(String language)
          Sets the language.
 
Methods inherited from class ezvcard.types.BinaryType
addPid, cannotUnmarshalValue, doMarshalSubTypes, doMarshalText, doMarshalXml, doUnmarshalText, doUnmarshalXml, getAltId, getContentType, getData, getPids, getPref, getType, getUrl, removePids, setAltId, setContentType, setData, setPref, setType, setUrl
 
Methods inherited from class ezvcard.types.VCardType
compareTo, getGroup, getQName, getSubTypes, getSupportedVersions, getTypeName, marshalSubTypes, marshalText, marshalXml, setGroup, unmarshalHtml, unmarshalText, unmarshalXml
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NAME

public static final String NAME
See Also:
Constant Field Values
Constructor Detail

SoundType

public SoundType()

SoundType

public SoundType(String url,
                 SoundTypeParameter type)
Parameters:
url - the URL to the sound file
type - the content type (e.g. OGG)

SoundType

public SoundType(byte[] data,
                 SoundTypeParameter type)
Parameters:
data - the binary data of the sound file
type - the content type (e.g. OGG)

SoundType

public SoundType(InputStream in,
                 SoundTypeParameter type)
          throws IOException
Parameters:
in - an input stream to the binary data (will be closed)
type - the content type (e.g. OGG)
Throws:
IOException - if there's a problem reading from the input stream

SoundType

public SoundType(File file,
                 SoundTypeParameter type)
          throws IOException
Parameters:
file - the sound file
type - the content type (e.g. OGG)
Throws:
IOException - if there's a problem reading from the file
Method Detail

getLanguage

public String getLanguage()
Gets the language.

Returns:
the language or null if not set
See Also:
VCardSubTypes.getLanguage()

setLanguage

public void setLanguage(String language)
Sets the language.

Parameters:
language - the language or null to remove
See Also:
VCardSubTypes.setLanguage(java.lang.String)

buildTypeObj

protected SoundTypeParameter buildTypeObj(String type)
Description copied from class: BinaryType
Builds a MediaTypeParameter object based on the value of the TYPE parameter in 2.1/3.0 vCards.

Specified by:
buildTypeObj in class BinaryType<SoundTypeParameter>
Parameters:
type - the TYPE value
Returns:
the parameter object

buildMediaTypeObj

protected SoundTypeParameter buildMediaTypeObj(String mediaType)
Description copied from class: BinaryType
Builds a MediaTypeParameter object based on the information in the MEDIATYPE parameter or data URI of 4.0 vCards.

Specified by:
buildMediaTypeObj in class BinaryType<SoundTypeParameter>
Parameters:
mediaType - the media type string (e.g. "image/jpeg")
Returns:
the parameter object

doUnmarshalHtml

protected void doUnmarshalHtml(HCardElement element,
                               List<String> warnings)
Description copied from class: VCardType
Unmarshals the type from an hCard (HTML document).

Overrides:
doUnmarshalHtml in class BinaryType<SoundTypeParameter>
Parameters:
element - the HTML element that contains the type data.
warnings - allows the programmer to alert the user to any note-worthy (but non-critical) issues that occurred during the unmarshalling process


Copyright © 2012-2013. All Rights Reserved.