Administrar audio en presentaciones usando Java
Crear marcos de audio
Aspose.Slides for Java le permite agregar archivos de audio a las diapositivas. Los archivos de audio se incrustan en las diapositivas como marcos de audio.
- Cree una instancia de la clase Presentation.
- Obtenga la referencia de una diapositiva mediante su índice.
- Cargue el flujo del archivo de audio que desea incrustar en la diapositiva.
- Agregue el marco de audio incrustado (que contiene el archivo de audio) a la diapositiva.
- Establezca PlayMode y
Volumeexpuestos por el objeto IAudioFrame. - Guarde la presentación modificada.
Este código Java le muestra cómo agregar un marco de audio incrustado a una diapositiva:
// Instancia una clase Presentation que representa un archivo de presentación
Presentation pres = new Presentation();
try {
// Obtiene la primera diapositiva
ISlide sld = pres.getSlides().get_Item(0);
// Carga el archivo de sonido wav en un flujo
FileInputStream fstr = new FileInputStream(new File("audio.wav"));
// Añade el marco de audio
IAudioFrame audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr);
fstr.close();
// Establece el modo de reproducción y el volumen del audio
audioFrame.setPlayMode(AudioPlayModePreset.Auto);
audioFrame.setVolume(AudioVolumeMode.Loud);
// Escribe el archivo PowerPoint en disco
pres.save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Cambiar la miniatura del marco de audio
Cuando agrega un archivo de audio a una presentación, el audio aparece como un marco con una imagen predeterminada estándar (ver la imagen en la sección siguiente). Usted cambia la imagen de vista previa del marco de audio (establezca la imagen que prefiera).
Este código Java le muestra cómo cambiar la miniatura o imagen de vista previa de un marco de audio:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Agrega un marco de audio a la diapositiva con una posición y tamaño especificados.
FileInputStream audioStream = new FileInputStream("sample2.mp3");
IAudioFrame audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.close();
// Agrega una imagen a los recursos de la presentación.
IPPImage picture;
IImage image = Images.fromFile("eagle.jpeg");
try {
picture = presentation.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
// Establece la imagen para el marco de audio.
audioFrame.getPictureFormat().getPicture().setImage(picture); // <-----
//Guarda la presentación modificada en disco
presentation.save("example_out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Cambiar opciones de reproducción de audio
Aspose.Slides for Java le permite cambiar opciones que controlan la reproducción o propiedades de un audio. Por ejemplo, puede ajustar el volumen de un audio, configurar la reproducción en bucle o incluso ocultar el ícono de audio.
The Audio Options pane in Microsoft PowerPoint:

PowerPoint Audio Options that correspond to Aspose.Slides AudioFrame properties:
- Start lista desplegable coincide con el método AudioFrame.setPlayMode
- Volume coincide con el método AudioFrame.setVolume
- Play Across Slides coincide con el método AudioFrame.setPlayAcrossSlides
- Loop until Stopped coincide con el método AudioFrame.setPlayLoopMode
- Hide During Show coincide con el método AudioFrame.setHideAtShowing
- Rewind after Playing coincide con el método AudioFrame.setRewindAudio
Opciones de Editing de PowerPoint que corresponden a las propiedades de Aspose.Slides AudioFrame properties:
- Fade In coincide con el método AudioFrame.setFadeInDuration
- Fade Out coincide con el método AudioFrame.setFadeOutDuration
- Trim Audio Start Time coincide con el método AudioFrame.setTrimFromStart
- Trim Audio End Time el valor equivale a la duración del audio menos el valor del método AudioFrame.setTrimFromEnd
El Volume controll de PowerPoint en el panel de control de audio corresponde al método AudioFrame.setVolumeValue. Le permite cambiar el volumen del audio como un porcentaje.
Así es como cambia las opciones de reproducción de audio:
- Cree o obtenga el Audio Frame.
- Establezca nuevos valores para las propiedades del Audio Frame que desea ajustar.
- Guarde el archivo PowerPoint modificado.
Este código Java demuestra una operación en la que se ajustan las opciones de un audio:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
// Obtiene la forma AudioFrame
AudioFrame audioFrame = (AudioFrame)pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Establece el modo de reproducción a al hacer clic
audioFrame.setPlayMode(AudioPlayModePreset.OnClick);
// Establece el volumen a bajo
audioFrame.setVolume(AudioVolumeMode.Low);
// Configura el audio para reproducirse a través de diapositivas
audioFrame.setPlayAcrossSlides(true);
// Desactiva el bucle para el audio
audioFrame.setPlayLoopMode(false);
// Oculta el AudioFrame durante la presentación
audioFrame.setHideAtShowing(true);
// Rebobina el audio al inicio después de reproducir
audioFrame.setRewindAudio(true);
// Guarda el archivo PowerPoint en disco
pres.save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Este ejemplo Java muestra cómo agregar un nuevo marco de audio con audio incrustado, recortarlo y establecer las duraciones de fade:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
byte[] audioData = Files.readAllBytes(Paths.get("sampleaudio.mp3"));
IAudio audio = pres.getAudios().addAudio(audioData);
IAudioFrame audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio);
// Establece el desplazamiento de inicio del recorte a 1.5 segundos
audioFrame.setTrimFromStart(1500f);
// Establece el desplazamiento de fin del recorte a 2 segundos
audioFrame.setTrimFromEnd(2000f);
// Establece la duración del fade-in a 200 ms
audioFrame.setFadeInDuration(200f);
// Establece la duración del fade-out a 500 ms
audioFrame.setFadeOutDuration(500f);
pres.save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
El siguiente ejemplo de código muestra cómo obtener un marco de audio con audio incrustado y establecer su volumen al 85%:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
ISlide slide = pres.getSlides().get_Item(0);
// Obtiene una forma de marco de audio
IAudioFrame audioFrame = (IAudioFrame)slide.getShapes().get_Item(0);
// Establece el volumen del audio al 85%
audioFrame.setVolumeValue(85f);
pres.save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}
finally {
pres.dispose();
}
Extraer audio
Aspose.Slides for Java le permite extraer el sonido utilizado en las transiciones de la presentación. Por ejemplo, puede extraer el sonido usado en una diapositiva específica.
- Cree una instancia de la clase Presentation y cargue la presentación que contiene el audio.
- Obtenga la referencia de la diapositiva correspondiente mediante su índice.
- Acceda a las slideshow transitions de la diapositiva.
- Extraiga el sonido en datos de bytes.
Este código en Java le muestra cómo extraer el audio usado en una diapositiva:
// Instancia una clase Presentation que representa un archivo de presentación
Presentation pres = new Presentation("AudioSlide.pptx");
try {
// Accede a la diapositiva deseada
ISlide slide = pres.getSlides().get_Item(0);
// Obtiene los efectos de transición de la presentación para la diapositiva
ISlideShowTransition transition = slide.getSlideShowTransition();
//Extrae el sonido en un arreglo de bytes
byte[] audio = transition.getSound().getBinaryData();
System.out.println("Length: " + audio.length);
} finally {
if (pres != null) pres.dispose();
}
FAQ
¿Puedo reutilizar el mismo recurso de audio en varias diapositivas sin inflar el tamaño del archivo?
Sí. Agregue el audio una vez a la audio collection compartida de la presentación y cree marcos de audio adicionales que referencien ese recurso existente. Esto evita duplicar los datos multimedia y mantiene el tamaño de la presentación bajo control.
¿Puedo reemplazar el sonido en un marco de audio existente sin recrear la forma?
Sí. Para un sonido enlazado, actualice el link path para que apunte al nuevo archivo. Para un sonido incrustado, reemplace el objeto embedded audio por otro de la audio collection de la presentación. El formato del marco y la mayoría de los ajustes de reproducción permanecen intactos.
¿El recorte cambia los datos de audio subyacentes almacenados en la presentación?
No. El recorte solo ajusta los límites de reproducción. Los bytes originales del audio permanecen sin cambios y accesibles a través del audio incrustado o la audio collection de la presentación.