音频与字幕

插入音频

JAnim 支持插入音频,并在导出时合并到视频中:

audio = Audio('audio.mp3')
self.play_audio(audio)

默认情况下,音频会在当前时刻开始播放;关于播放音频的具体细节请参考 play_audio() 方法。

利用时段信息进行同步

play_audio() 方法还会返回一个 TimeRange 对象,使得这样成为可能:

audio1 = Audio('audio1.mp3')
t = self.play_audio(audio1)
self.forward(t.duration)

txt = Text('This text is written as the audio plays')

audio2 = Audio('audio2.mp3')
t = self.play_audio(audio2)
self.play(Write(txt), duration=t.duration)

也就是说,通过获知音频的时段信息,例如这里的时长,可以进行如同步音频与动画等各种灵活的操作。

JAnim 也可以通过 subtitle() 方法插入字幕,并与音频同步:

self.forward()

audio = Audio('audio.mp3')
t = self.play_audio(audio)
self.subtitle('This is a subtitle', duration=t.duration)
self.forward_to(t.end)

self.forward()

关于字幕的具体细节请参考 subtitle() 方法。

小技巧

subtitle() 同样会返回一个 TimeRange 对象,提供了字幕的时段信息。

插入字幕及其配音的简便方法

如果你想要插入一段字幕及其配音,可以使用 audio_and_subtitle() 方法,这是对 play_audio()subtitle() 的封装:

t = self.aas('audio.mp3', 'This is a subtitle')
self.forward(t.duration)

提示

audio_and_subtitle() 可以简写为 aas()

重要

audio_and_subtitle() 方法默认会自动去除音频前后多余的空白,可以传入 clip=None 以禁用,或是使用 clip=(start, end) 来手动确定裁剪区段。