/* * MusicOMatService.java * * Version 1.0 Sep 25, 2008 * * Copyright notice * * Brief description * * (c) 2008 by dbreuer */ package de.fhkoeln.santiago.services; import java.net.URI; import de.fhkoeln.cosima.components.AbstractComponent; import de.fhkoeln.cosima.media.Media; import de.fhkoeln.cosima.media.MediaComponent; import de.fhkoeln.cosima.media.mediabroker.MediaBroker; import de.fhkoeln.cosima.services.IODescriptor; import de.fhkoeln.cosima.services.registry.ServiceRegistry; import de.fhkoeln.cosima.util.Logger; import de.fhkoeln.santiago.components.ffmpeg.FFMpegMerger; import de.fhkoeln.santiago.components.jmf.MediaAction; public class MusicOMatService extends AbstractComponent { private final static String URI = "http://localhost:8080/axis2/services/MusicOMatService"; private final static String DESCRIPTION = "Transformer:MusicOMatService"; public MusicOMatService(ServiceRegistry registry) { super(registry, URI, DESCRIPTION); } public IODescriptor execute() { return super.execute(); } protected IODescriptor _execute() { IODescriptor output = new IODescriptor(); MediaComponent outputMedia = new Media(); outputMedia.setName("SlideshowWithMusic"); Logger.info("--- Slideshow File @ " + this.getInput().getDescriptorElements()[0]); Logger.info("--- Audio File @ " + this.getInput().getDescriptorElements()[1]); MediaComponent movieFile = getBroker().retrieve(this.getInput().getDescriptorElements()[0]); MediaComponent audioFile = getBroker().retrieve(this.getInput().getDescriptorElements()[1]); Logger.info("--- MediaObject for Slideshow File: " + movieFile.getPlayableData()); Logger.info("--- MediaObject for Audio File: " + audioFile.getPlayableData()); MediaAction action = new FFMpegMerger(movieFile, audioFile, outputMedia); action.performAction(); URI mediaUri = getBroker().store(outputMedia); output.add(mediaUri.toString()); return output; } public void setInput(IODescriptor descriptor) { super.setInput(descriptor); } public IODescriptor getInput() { return super.getInput(); } public MediaBroker getBroker() { return super.getBroker(); } public void setBroker(MediaBroker broker) { super.setBroker(broker); } public String getDescription() { return super.getDescription(); } public String getUri() { return super.getUri(); } }