We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

无法获取音频的裁剪信息

问题描述:
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;
    }

}

@ciyuan9,

我已观察到您的要求,很遗憾地分享,目前API中没有所需的支持。 ID SLIDESJAVA-37997的问题已添加为新功能请求,以提供所需的支持。 该线程已与问题联系在一起,因此一旦支持可用,您可能会收到通知。

1 Like

The issues you have found earlier (filed as SLIDESJAVA-37997) have been fixed in this update.