private static SMILMediaElement getMediaElement(SMILDocument document, PduPart part) { final String tag; if (PartParser.isImage(part)) { tag = "img"; } else if (PartParser.isAudio(part)) { tag = "audio"; } else if (PartParser.isVideo(part)) { tag = "video"; } else if (PartParser.isText(part)) { tag = "text"; } else { tag = "ref"; } return createMediaElement(tag, document, new String(part.getName() == null ? new byte[]{} : part.getName())); }
/** * Returns the media model for the given SMILMediaElement in the PduBody. * * @param context Context * @param sme The SMILMediaElement to find * @param srcs String array of sources * @param layouts LayoutModel * @param pb PduBuddy * @return MediaModel * @throws IOException * @throws IllegalArgumentException * @throws MmsException */ public static MediaModel getMediaModel(Context context, SMILMediaElement sme, ArrayList<String> srcs, LayoutModel layouts, PduBody pb) throws IOException, IllegalArgumentException, MmsException { String tag = sme.getTagName(); String src = sme.getSrc(); PduPart part = findPart(context, pb, src, srcs); if (sme instanceof SMILRegionMediaElement) { return getRegionMediaModel( context, tag, src, (SMILRegionMediaElement) sme, layouts, part); } else { return getGenericMediaModel( context, tag, src, sme, part, null); } }
private static SMILDocument createSmilDocument(PduBody body) { Log.w(TAG, "Creating SMIL document from PduBody."); SMILDocument document = new SmilDocumentImpl(); SMILElement smilElement = (SMILElement) document.createElement("smil"); document.appendChild(smilElement); SMILElement headElement = (SMILElement) document.createElement("head"); smilElement.appendChild(headElement); SMILLayoutElement layoutElement = (SMILLayoutElement) document.createElement("layout"); headElement.appendChild(layoutElement); SMILRootLayoutElement rootLayoutElement = (SMILRootLayoutElement) document.createElement("root-layout"); rootLayoutElement.setWidth(ROOT_WIDTH); rootLayoutElement.setHeight(ROOT_HEIGHT); layoutElement.appendChild(rootLayoutElement); SMILElement bodyElement = (SMILElement) document.createElement("body"); smilElement.appendChild(bodyElement); SMILParElement par = (SMILParElement) document.createElement("par"); bodyElement.appendChild(par); for (int i=0; i<body.getPartsNum(); i++) { PduPart part = body.getPart(i); SMILRegionElement regionElement = getRegion(document, part); SMILMediaElement mediaElement = getMediaElement(document, part); if (regionElement != null) { ((SMILRegionMediaElement)mediaElement).setRegion(regionElement); layoutElement.appendChild(regionElement); } par.appendChild(mediaElement); } return document; }
public static SMILDocument createSmilDocument(SlideDeck deck) { Log.w(TAG, "Creating SMIL document from SlideDeck."); SMILDocument document = new SmilDocumentImpl(); SMILElement smilElement = (SMILElement) document.createElement("smil"); document.appendChild(smilElement); SMILElement headElement = (SMILElement) document.createElement("head"); smilElement.appendChild(headElement); SMILLayoutElement layoutElement = (SMILLayoutElement) document.createElement("layout"); headElement.appendChild(layoutElement); SMILRootLayoutElement rootLayoutElement = (SMILRootLayoutElement) document.createElement("root-layout"); rootLayoutElement.setWidth(ROOT_WIDTH); rootLayoutElement.setHeight(ROOT_HEIGHT); layoutElement.appendChild(rootLayoutElement); SMILElement bodyElement = (SMILElement) document.createElement("body"); smilElement.appendChild(bodyElement); SMILParElement par = (SMILParElement) document.createElement("par"); bodyElement.appendChild(par); for (Slide slide : deck.getSlides()) { SMILRegionElement regionElement = slide.getSmilRegion(document); SMILMediaElement mediaElement = slide.getMediaElement(document); if (regionElement != null) { ((SMILRegionMediaElement)mediaElement).setRegion(regionElement); layoutElement.appendChild(regionElement); } par.appendChild(mediaElement); } return document; }
public static SMILMediaElement createMediaElement( String tag, SMILDocument document, String src) { SMILMediaElement mediaElement = (SMILMediaElement) document.createElement(tag); mediaElement.setSrc(escapeXML(src)); return mediaElement; }
public static MediaModel getMediaModel(Context context, SMILMediaElement sme, LayoutModel layouts, PduBody pb) throws IOException, IllegalArgumentException, MmsException { String tag = sme.getTagName(); String src = sme.getSrc(); PduPart part = findPart(pb, src); if (sme instanceof SMILRegionMediaElement) { return getRegionMediaModel( context, tag, src, (SMILRegionMediaElement) sme, layouts, part); } else { return getGenericMediaModel( context, tag, src, sme, part, null); } }
private static SMILMediaElement createMediaElement(String tag, SMILDocument document, String src) { SMILMediaElement mediaElement = (SMILMediaElement) document.createElement(tag); mediaElement.setSrc(escapeXML(src)); return mediaElement; }
@Override public SMILMediaElement getMediaElement(SMILDocument document) { return SmilUtil.createMediaElement("video", document, new String(getPart().getName())); }
@Override public SMILMediaElement getMediaElement(SMILDocument document) { return SmilUtil.createMediaElement("audio", document, new String(getPart().getName())); }
@Override public SMILMediaElement getMediaElement(SMILDocument document) { return SmilUtil.createMediaElement("text", document, new String(getPart().getName())); }
@Override public SMILMediaElement getMediaElement(SMILDocument document) { return SmilUtil.createMediaElement("img", document, new String(getPart().getName())); }
public static SMILMediaElement createMediaElement(String tag, SMILDocument document, String src) { SMILMediaElement mediaElement = (SMILMediaElement) document.createElement(tag); mediaElement.setSrc(escapeXML(src)); return mediaElement; }
private static SMILDocument createSmilDocument(PduBody pb) { if (Config.LOGV) { Log.v(TAG, "Creating default SMIL document."); } SMILDocument document = new SmilDocumentImpl(); // Create root element. // FIXME: Should we create root element in the constructor of document? SMILElement smil = (SMILElement) document.createElement("smil"); smil.setAttribute("xmlns", "http://www.w3.org/2001/SMIL20/Language"); document.appendChild(smil); // Create <head> and <layout> element. SMILElement head = (SMILElement) document.createElement("head"); smil.appendChild(head); SMILLayoutElement layout = (SMILLayoutElement) document.createElement("layout"); head.appendChild(layout); // Create <body> element and add a empty <par>. SMILElement body = (SMILElement) document.createElement("body"); smil.appendChild(body); SMILParElement par = addPar(document); // Create media objects for the parts in PDU. int partsNum = pb.getPartsNum(); if (partsNum == 0) { return document; } DrmManagerClient drmManagerClient = QKSMSApp.getApplication().getDrmManagerClient(); boolean hasText = false; boolean hasMedia = false; for (int i = 0; i < partsNum; i++) { // Create new <par> element. if ((par == null) || (hasMedia && hasText)) { par = addPar(document); hasText = false; hasMedia = false; } PduPart part = pb.getPart(i); String contentType = new String(part.getContentType()); if (ContentType.isDrmType(contentType)) { contentType = drmManagerClient.getOriginalMimeType(part.getDataUri()); } if (contentType.equals(ContentType.TEXT_PLAIN) || contentType.equalsIgnoreCase(ContentType.APP_WAP_XHTML) || contentType.equals(ContentType.TEXT_HTML)) { SMILMediaElement textElement = createMediaElement( ELEMENT_TAG_TEXT, document, part.generateLocation()); par.appendChild(textElement); hasText = true; } else if (ContentType.isImageType(contentType)) { SMILMediaElement imageElement = createMediaElement( ELEMENT_TAG_IMAGE, document, part.generateLocation()); par.appendChild(imageElement); hasMedia = true; } else if (ContentType.isVideoType(contentType)) { SMILMediaElement videoElement = createMediaElement( ELEMENT_TAG_VIDEO, document, part.generateLocation()); par.appendChild(videoElement); hasMedia = true; } else if (ContentType.isAudioType(contentType)) { SMILMediaElement audioElement = createMediaElement( ELEMENT_TAG_AUDIO, document, part.generateLocation()); par.appendChild(audioElement); hasMedia = true; } else { // TODO: handle other media types. Log.w(TAG, "unsupport media type"); } } return document; }
@Override public SMILMediaElement getMediaElement(SMILDocument document) { return SmilUtil.createMediaElement("other", document, new String(getPart().getName())); }
private static SMILDocument createSmilDocument(PduBody pb) { if (Config.LOGV) { Log.v(TAG, "Creating default SMIL document."); } SMILDocument document = new SmilDocumentImpl(); // Create root element. // FIXME: Should we create root element in the constructor of document? SMILElement smil = (SMILElement) document.createElement("smil"); smil.setAttribute("xmlns", "http://www.w3.org/2001/SMIL20/Language"); document.appendChild(smil); // Create <head> and <layout> element. SMILElement head = (SMILElement) document.createElement("head"); smil.appendChild(head); SMILLayoutElement layout = (SMILLayoutElement) document.createElement("layout"); head.appendChild(layout); // Create <body> element and add a empty <par>. SMILElement body = (SMILElement) document.createElement("body"); smil.appendChild(body); SMILParElement par = addPar(document); // Create media objects for the parts in PDU. int partsNum = pb.getPartsNum(); if (partsNum == 0) { return document; } DrmManagerClient drmManagerClient = MmsApp.getApplication().getDrmManagerClient(); boolean hasText = false; boolean hasMedia = false; for (int i = 0; i < partsNum; i++) { // Create new <par> element. if ((par == null) || (hasMedia && hasText)) { par = addPar(document); hasText = false; hasMedia = false; } PduPart part = pb.getPart(i); String contentType = new String(part.getContentType()); if (ContentType.isDrmType(contentType)) { contentType = drmManagerClient.getOriginalMimeType(part.getDataUri()); } if (contentType.equals(ContentType.TEXT_PLAIN) || contentType.equalsIgnoreCase(ContentType.APP_WAP_XHTML) || contentType.equals(ContentType.TEXT_HTML)) { SMILMediaElement textElement = createMediaElement( ELEMENT_TAG_TEXT, document, part.generateLocation()); par.appendChild(textElement); hasText = true; } else if (ContentType.isImageType(contentType)) { SMILMediaElement imageElement = createMediaElement( ELEMENT_TAG_IMAGE, document, part.generateLocation()); par.appendChild(imageElement); hasMedia = true; } else if (ContentType.isVideoType(contentType)) { SMILMediaElement videoElement = createMediaElement( ELEMENT_TAG_VIDEO, document, part.generateLocation()); par.appendChild(videoElement); hasMedia = true; } else if (ContentType.isAudioType(contentType)) { SMILMediaElement audioElement = createMediaElement( ELEMENT_TAG_AUDIO, document, part.generateLocation()); par.appendChild(audioElement); hasMedia = true; } else { // TODO: handle other media types. Log.w(TAG, "unsupport media type"); } } return document; }
public abstract SMILMediaElement getMediaElement(SMILDocument document);