为有中文需求的客户提供多渠道中文技术支持.

Tue Jun 18, 2024 8:42 am

我希望在某个ppt的第一页插入音频,并使其跨页播放,应该怎么操作

DemosHume
 
Posts: 46
Joined: Mon Jan 17, 2022 10:22 am

Tue Jun 18, 2024 9:40 am

您好,

感谢您的来信。
请参考下面的代码实现您的需求,如果您有任何疑问,请随时来信。
Code: Select all
String inputFile = "VideoAudio.pptx";
String inputFile_1 = "Music.wav";
String outputFile = "insertAudio.pptx";
Presentation presentation = new Presentation();
presentation.loadFromFile(inputFile);
// 添加shape
Rectangle2D.Double rec_title = new Rectangle2D.Double(50, 240, 160, 50);
IAutoShape shape_title = presentation.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE, rec_title);
shape_title.getLine().setFillType(FillFormatType.NONE);
shape_title.getFill().setFillType(FillFormatType.NONE);
ParagraphEx para_title = new ParagraphEx();
para_title.setText("Audio:");
para_title.setAlignment(TextAlignmentType.CENTER);
para_title.getTextRanges().get(0).setLatinFont(new TextFont("Myriad Pro Light"));
para_title.getTextRanges().get(0).setFontHeight(32);
para_title.getTextRanges().get(0).isBold(TriState.TRUE);
para_title.getTextRanges().get(0).getFill().setFillType(FillFormatType.SOLID);
para_title.getTextRanges().get(0).getFill().getSolidColor().setColor(Color.gray);
shape_title.getTextFrame().getParagraphs().append(para_title);
// 插入音频
Rectangle2D.Double audioRect = new Rectangle2D.Double(220, 240, 80, 80);
IAudio iAudio = presentation.getSlides().get(0).getShapes().appendAudioMedia((new File(inputFile_1)).getAbsolutePath(), audioRect);
// 设置跨页播放
iAudio.setPlayMode(AudioPlayMode.PRESENTATION);
presentation.saveToFile(outputFile, FileFormat.PPTX_2013);
presentation.dispose();

Sincerely,
William
E-iceblue support team
User avatar

William.Zhang
 
Posts: 451
Joined: Mon Dec 27, 2021 2:23 am

Thu Jun 20, 2024 6:11 am

能直接使用 InputStream 类型进行插入么?

DemosHume
 
Posts: 46
Joined: Mon Jan 17, 2022 10:22 am

Thu Jun 20, 2024 6:23 am

William.Zhang wrote:您好,

感谢您的来信。
请参考下面的代码实现您的需求,如果您有任何疑问,请随时来信。
Code: Select all
String inputFile = "VideoAudio.pptx";
String inputFile_1 = "Music.wav";
String outputFile = "insertAudio.pptx";
Presentation presentation = new Presentation();
presentation.loadFromFile(inputFile);
// 添加shape
Rectangle2D.Double rec_title = new Rectangle2D.Double(50, 240, 160, 50);
IAutoShape shape_title = presentation.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE, rec_title);
shape_title.getLine().setFillType(FillFormatType.NONE);
shape_title.getFill().setFillType(FillFormatType.NONE);
ParagraphEx para_title = new ParagraphEx();
para_title.setText("Audio:");
para_title.setAlignment(TextAlignmentType.CENTER);
para_title.getTextRanges().get(0).setLatinFont(new TextFont("Myriad Pro Light"));
para_title.getTextRanges().get(0).setFontHeight(32);
para_title.getTextRanges().get(0).isBold(TriState.TRUE);
para_title.getTextRanges().get(0).getFill().setFillType(FillFormatType.SOLID);
para_title.getTextRanges().get(0).getFill().getSolidColor().setColor(Color.gray);
shape_title.getTextFrame().getParagraphs().append(para_title);
// 插入音频
Rectangle2D.Double audioRect = new Rectangle2D.Double(220, 240, 80, 80);
IAudio iAudio = presentation.getSlides().get(0).getShapes().appendAudioMedia((new File(inputFile_1)).getAbsolutePath(), audioRect);
// 设置跨页播放
iAudio.setPlayMode(AudioPlayMode.PRESENTATION);
presentation.saveToFile(outputFile, FileFormat.PPTX_2013);
presentation.dispose();

Sincerely,
William
E-iceblue support team




这样插入的音频没有内嵌到ppt中,而是以路径的形式保存的。我希望是内嵌在ppt中的形式

DemosHume
 
Posts: 46
Joined: Mon Jan 17, 2022 10:22 am

Thu Jun 20, 2024 6:28 am

您好,

感谢您的回复。
请问您指的内嵌具体是什么呢?能提供一个相关的文档给我们进一步调查吗?

Sincerely,
William
E-iceblue support team
User avatar

William.Zhang
 
Posts: 451
Joined: Mon Dec 27, 2021 2:23 am

Thu Jun 20, 2024 6:36 am

William.Zhang wrote:您好,

感谢您的回复。
请问您指的内嵌具体是什么呢?能提供一个相关的文档给我们进一步调查吗?

Sincerely,
William
E-iceblue support team



就是把bgm加上之后,把ppt发给其他人,也能正常播放

DemosHume
 
Posts: 46
Joined: Mon Jan 17, 2022 10:22 am

Thu Jun 20, 2024 6:37 am

William.Zhang wrote:您好,

感谢您的回复。
请问您指的内嵌具体是什么呢?能提供一个相关的文档给我们进一步调查吗?

Sincerely,
William
E-iceblue support team



前面的插入方式会提示无法定位链接的多媒体文件

DemosHume
 
Posts: 46
Joined: Mon Jan 17, 2022 10:22 am

Thu Jun 20, 2024 7:04 am

William.Zhang wrote:您好,

感谢您的回复。
请问您指的内嵌具体是什么呢?能提供一个相关的文档给我们进一步调查吗?

Sincerely,
William
E-iceblue support team



这个文档里面有两个音频文件,一个是用上面的代码插入的,一个是我手动添加的,发送给其他人后,左边的无法播放

DemosHume
 
Posts: 46
Joined: Mon Jan 17, 2022 10:22 am

Thu Jun 20, 2024 7:30 am

您好,

感谢您的回复。
如果您想实现嵌入效果,我们提供了重载方法"appendAudioMedia(String filePath,Rectangle2D rect,boolean isEmbed);",最后一个参数设置为true,就表示嵌入音频文件。另外可以用InputStream类型插入,我们也有对应的重载方法,您可以在IDE中使用快捷指令查看,但这种方式目前还不能将音频设置为嵌入方式。

Sincerely,
William
E-iceblue support team
User avatar

William.Zhang
 
Posts: 451
Joined: Mon Dec 27, 2021 2:23 am

Return to 中文技术支持