问题描述:
PPT里无法读取声音信息的裁剪数据
开发环境:Java8 Win10系统
工具包版本Aspose.Slide 19.11
使用的PPT案例文件见附件
音频.zip (1.2 MB)
我想要获取如下所示的音频裁剪开始和结束的信息
裁剪信息.png (16.3 KB)
但是我并没有从api列表中找到我想要使用的API。
请问有什么方式能够让我读取到这样的数据吗?
使用的读取音频的Java代码如下:
package com.xh.slides.examples.Slides.Media;
import com.aspose.slides.IAudio;
import com.aspose.slides.IAudioFrame;
import com.aspose.slides.IShape;
import com.aspose.slides.ISlide;
import com.aspose.slides.Presentation;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* @author xwj
* @date 2019/12/13 9:37
* @description 获取音频文件信息
*/
public class GetAudioFile {
public static void main(String[] args) {
Presentation pres = new Presentation("E:\\document\\音频.pptx");
//读取第一张幻灯片
ISlide slide = pres.getSlides().get_Item(0);
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAudioFrame) {
IAudioFrame audioFrame = (IAudioFrame) shape;
//获取音频相关信息
int audioCdEndTrack = audioFrame.getAudioCdEndTrack();
int audioCdEndTrackTime = audioFrame.getAudioCdEndTrackTime();
int audioCdStartTrack = audioFrame.getAudioCdStartTrack();
int audioCdStartTrackTime = audioFrame.getAudioCdStartTrackTime();
IAudio audio = audioFrame.getEmbeddedAudio();
String filename = write(audio.getStream());
System.out.println(filename);
}
}
}
public static String write(InputStream is){
String filename = "E:\\document\\音频" + System.nanoTime() + ".mp3";
int index;
byte[] bytes = new byte[1024];
try {
FileOutputStream os = new FileOutputStream(filename);
while ((index = is.read(bytes)) != -1) {
os.write(bytes, 0, index);
os.flush();
}
os.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return filename;
}
}