مدیریت صدا در ارائهها با استفاده از پایتون
مرور کلی
این مقاله توضیح میدهد که چگونه با فریمهای صوتی در Aspose.Slides کار کنید. نحوه اضافه کردن صداهای جاسازیشده به اسلایدها، سفارشیسازی تصویر بندانگشتی فریم صوتی، پیکربندی گزینههای پخش مانند حجم، حلقهدار کردن، مخفی کردن، برش و مدت زمانهای محو شدن، و استخراج صدایی که در انتقالهای نمایش اسلایدها استفاده میشود را نشان میدهد.
ایجاد فریمهای صوتی
Aspose.Slides برای Python از طریق .NET به شما اجازه میدهد فایلهای صوتی را به اسلایدها اضافه کنید. فایلهای صوتی بهصورت فریمهای صوتی در اسلایدها جاسازی میشوند.
- یک نمونه از کلاس Presentation ایجاد کنید.
- مرجع یک اسلاید را از طریق شاخص آن دریافت کنید.
- جریان فایل صوتی که میخواهید در اسلاید جاسازی کنید را بارگذاری کنید.
- فریم صوتی جاسازیشده (شامل فایل صوتی) را به اسلاید اضافه کنید.
- مقادیر PlayMode و
Volumeارائهشده توسط شیء IAudioFrame را تنظیم کنید. - ارائه اصلاحشده را ذخیره کنید.
این کد Python نشان میدهد که چگونه یک فریم صوتی جاسازیشده را به اسلاید اضافه کنید:
import aspose.slides as slides
# نمونهسازی یک کلاس ارائه که نمایانگر یک فایل ارائه است
with slides.Presentation() as pres:
# اسلاید اول را دریافت میکند
sld = pres.slides[0]
# فایل صوتی wav را بهعنوان جریان بارگذاری میکند
with open(path + "sampleaudio.wav", "rb") as in_file:
# فریم صوتی را اضافه میکند
audio_frame = sld.shapes.add_audio_frame_embedded(50, 150, 100, 100, in_file)
# حالت پخش و حجم صدا را تنظیم میکند
audio_frame.play_mode = slides.AudioPlayModePreset.AUTO
audio_frame.volume = slides.AudioVolumeMode.LOUD
# فایل PowerPoint را در دیسک ذخیره میکند
pres.save("AudioFrameEmbed_out.pptx", slides.export.SaveFormat.PPTX)
تغییر تصویر بندانگشتی فریم صوتی
هنگامی که یک فایل صوتی را به یک ارائه اضافه میکنید، صدا بهصورت فریمی با تصویر پیشفرض استاندارد ظاهر میشود (به تصویر در بخش زیر مراجعه کنید). میتوانید تصویر بندانگشتی فریم صوتی را به تصویر دلخواه خود تغییر دهید.
این کد Python نشان میدهد که چگونه تصویر بندانگشتی یا پیشنمایش فریم صوتی را تغییر دهید:
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# یک فریم صوتی را به اسلاید اضافه میکند با موقعیت و اندازه مشخص.
with open("sample2.mp3", "rb") as audio_fs:
audioFrame = slide.shapes.add_audio_frame_embedded(150, 100, 50, 50, audio_fs)
# یک تصویر را به منابع ارائه اضافه میکند.
with open("eagle.jpeg", "rb") as image_fs:
data = image_fs.read()
audioImage = presentation.images.add_image(data)
# تصویر فریم صوتی را تنظیم میکند.
audioFrame.picture_format.picture.image = audioImage
#ارائهٔ اصلاحشده را در دیسک ذخیره میکند
presentation.save("example_out.pptx", slides.export.SaveFormat.PPTX)
تغییر گزینههای پخش صوتی
Aspose.Slides برای Python از طریق .NET به شما اجازه میدهد گزینههایی را که رفتار پخش صدا یا ویژگیهای آن را کنترل میکنند، تغییر دهید. برای مثال میتوانید حجم صدا را تنظیم کنید، صدا را بهصورت حلقهای پخش کنید یا حتی نماد صدا را مخفی کنید.
پنل Audio Options در Microsoft PowerPoint:

Audio Options در PowerPoint که با ویژگیهای AudioFrame در Aspose.Slides مطابقت دارد:
- Start فهرست کشویی با خاصیت AudioFrame.play_mode مطابقت دارد
- Volume با خاصیت AudioFrame.volume مطابقت دارد
- Play Across Slides با خاصیت AudioFrame.play_across_slides مطابقت دارد
- Loop until Stopped با خاصیت AudioFrame.play_loop_mode مطابقت دارد
- Hide During Show با خاصیت AudioFrame.hide_at_showing مطابقت دارد
- Rewind after Playing با خاصیت AudioFrame.rewind_audio مطابقت دارد
گزینههای Editing در PowerPoint که با ویژگیهای AudioFrame در Aspose.Slides مطابقت دارد:
- Fade In با خاصیت AudioFrame.fade_in_duration مطابقت دارد
- Fade Out با خاصیت AudioFrame.fade_out_duration مطابقت دارد
- Trim Audio Start Time با خاصیت AudioFrame.trim_from_start مطابقت دارد
- Trim Audio End Time مقدار برابر با مدت زمان صدا منهای مقدار AudioFrame.trim_from_end است
کنترل Volume در پنل کنترل صدا در PowerPoint به خاصیت AudioFrame.volume_value مربوط میشود. این امکان را میدهد تا حجم صدا را بهصورت درصدی تغییر دهید.
اینها مراحل تغییر گزینههای پخش صدا هستند:
- Create یا دریافت فریم صوتی.
- مقادیر جدیدی برای ویژگیهای فریم صوتی که میخواهید تنظیم کنید، تنظیم کنید.
- فایل پاورپوینت اصلاحشده را ذخیره کنید.
این کد Python یک عملیات را نشان میدهد که در آن گزینههای صدا تنظیم میشوند:
import aspose.slides as slides
with slides.Presentation("AudioFrameEmbed_out.pptx") as pres:
# فریم AudioFrame را دریافت میکند
audioFrame = pres.slides[0].shapes[0]
# حالت Play mode را به پخش با کلیک تنظیم میکند
audioFrame.play_mode = slides.AudioPlayModePreset.ON_CLICK
# حجم صدا را به Low تنظیم میکند
audioFrame.volume = slides.AudioVolumeMode.LOW
# صدا را برای پخش در سراسر اسلایدها تنظیم میکند
audioFrame.play_across_slides = True
# حلقه صدا را غیرفعال میکند
audioFrame.play_loop_mode = False
# فریم AudioFrame را در طول نمایش اسلایدها مخفی میکند
audioFrame.hide_at_showing = True
# پس از پخش صدا را به ابتدا باز میگرداند
audioFrame.rewind_audio = True
# فایل PowerPoint را در دیسک ذخیره میکند
pres.save("AudioFrameEmbed_changed.pptx", slides.export.SaveFormat.PPTX)
این مثال Python نشان میدهد چگونه یک فریم صوتی جدید با صداهای جاسازیشده اضافه، برش داده و مدت زمانهای محو شدن را تنظیم کنید:
with slides.Presentation() as pres:
slide = pres.slides[0]
with open("sampleaudio.mp3", "rb") as audio_stream:
audio_data = audio_stream.read()
audio = pres.audios.add_audio(audio_data)
audio_frame = slide.shapes.add_audio_frame_embedded(50, 50, 100, 100, audio)
# تنظیم افست شروع برش به 1.5 ثانیه
audio_frame.trim_from_start = 1500.0
# تنظیم افست پایان برش به 2 ثانیه
audio_frame.trim_from_end = 2000.0
# تنظیم مدت زمان fade-in به 200 میلیثانیه
audio_frame.fade_in_duration = 200.0
# تنظیم مدت زمان fade-out به 500 میلیثانیه
audio_frame.fade_out_duration = 500.0
pres.save("AudioFrameTrimFade_out.pptx", slides.export.SaveFormat.PPTX)
نمونه کد زیر نشان میدهد چگونه یک فریم صوتی با صداهای جاسازیشده بازیابی شده و حجم آن را به ۸۵٪ تنظیم کنید:
with slides.Presentation("AudioFrameEmbed_out.pptx") as pres:
# یک فریم صوتی را دریافت میکند
audio_frame = pres.slides[0].shapes[0]
# حجم صدا را به 85% تنظیم میکند
audio_frame.volume_value = 85.0
pres.save("AudioFrameValue_out.pptx", slides.export.SaveFormat.PPTX)
مدیریت زیرنویسهای صوتی
Aspose.Slides به شما اجازه میدهد زیرنویسهای بسته به فریم صوتی را از طریق ویژگی caption_tracks اضافه کنید. این ویژگی یک CaptionsCollection برمیگرداند که به شما امکان میدهد ردیابهای WebVTT را اضافه، از میان ردیابهای موجود عبور کنید و در صورت لزوم آنها را حذف کنید.
Add Audio Captions
از ویژگی caption_tracks برای پیوست یک یا چند ردیاب زیرنویس به فریم صوتی استفاده کنید. در مثال زیر، یک فایل صوتی به اسلاید اضافه میشود و سپس یک ردیاب زیرنویس جدید از یک فایل .vtt بارگذاری میشود.
with slides.Presentation() as presentation:
with open("audio.mp3", "rb") as audio_stream:
audio = presentation.audios.add_audio(audio_stream.read())
slide = presentation.slides[0]
audio_frame = slide.shapes.add_audio_frame_embedded(10, 10, 50, 50, audio)
# یک ردیاب زیرنویس جدید را از یک فایل WebVTT اضافه کنید.
audio_frame.caption_tracks.add("New track", "track.vtt")
presentation.save("audio_with_captions.pptx", slides.export.SaveFormat.PPTX)
Extract Audio Captions
میتوانید از میان ردیابهای زیرنویس مرتبط با فریم صوتی عبور کنید و آنها را بهصورت فایلهای .vtt ذخیره نمایید. هر ردیاب زیرنویس دادههای باینری و شناسه منحصر بهفرد خود را در اختیار میگذارد که میتوان هنگام استخراج زیرنویسها از آن استفاده کرد.
with slides.Presentation("audio_with_captions.pptx") as presentation:
slide = presentation.slides[0]
for shape in slide.shapes:
if isinstance(shape, slides.AudioFrame):
audio_frame = shape
for caption_track in audio_frame.caption_tracks:
# ردیاب زیرنویس را به عنوان یک فایل .vtt ذخیره کنید.
with open(f"{caption_track.caption_id}.vtt", "wb") as track_stream:
track_stream.write(caption_track.binary_data)
Remove Audio Captions
برای حذف زیرنویسها از فریم صوتی، از متدهای ارائهشده توسط CaptionsCollection مانند clear، remove، یا remove_at استفاده کنید. مثال زیر تمام ردیابهای زیرنویس را از یک فریم صوتی حذف میکند.
with slides.Presentation("audio_with_captions.pptx") as presentation:
slide = presentation.slides[0]
audio_frame = slide.shapes[0] # نوع: slides.AudioFrame
# تمام ردیابهای زیرنویس را از فریم صوتی حذف کنید.
audio_frame.caption_tracks.clear()
presentation.save("audio_without_captions.pptx", slides.export.SaveFormat.PPTX)
استخراج صدا
Aspose.Slides برای Python از طریق .NET به شما امکان میدهد صداهایی را که در انتقالهای نمایش اسلاید استفاده میشوند استخراج کنید. برای مثال میتوانید صدای استفادهشده در یک اسلاید خاص را استخراج کنید.
- یک نمونه از کلاس Presentation ایجاد کرده و ارائه حاوی صدا را بارگذاری کنید.
- مرجع اسلاید مربوطه را از طریق شاخص آن دریافت کنید.
- به انتقالهای اسلاید برای اسلاید دسترسی پیدا کنید.
- صدا را بهصورت داده بایتی استخراج کنید.
این کد Python نشان میدهد چگونه صدا استفادهشده در یک اسلاید را استخراج کنید:
import aspose.slides as slides
#with slides.Presentation("AudioSlide.pptx") as pres:
with slides.Presentation("AudioFrameEmbed_changed.pptx") as pres:
# به اسلاید مورد نظر دسترسی مییابد
slide = pres.slides[0]
# تأثیرات انتقال اسلاید نمایش را برای اسلاید دریافت میکند
transition = slide.slide_show_transition
#صوت را به آرایه بایت استخراج میکند
audio = transition.sound.binary_data
print("Length: " + str(len(audio)))
پرسشهای متداول
آیا میتوانم همان دارایی صوتی را در اسلایدهای متعدد بدون افزایش حجم فایل دوباره استفاده کنم؟
بله. صدا را یکبار به audio collection مشترک ارائه اضافه کنید و فریمهای صوتی اضافی که به آن دارایی ارجاع میدهند ایجاد کنید. این کار از تکرار دادههای رسانهای جلوگیری میکند و اندازه ارائه را کنترل میپذیرد.
آیا میتوانم صدای موجود در یک فریم صوتی را بدون ایجاد شکل جدید جایگزین کنم؟
بله. برای صدای پیوندی، مسیر link path را به فایل جدید تغییر دهید. برای صدای جاسازیشده، شیء embedded audio را با دیگری از audio collection ارائه عوض کنید. قالببندی فریم و اکثر تنظیمات پخش دست نخورده باقی میمانند.
آیا برش تغییرات در دادههای صوتی زیرین ذخیرهشده در ارائه ایجاد میکند؟
نه. برش فقط مرزهای پخش را تنظیم میکند. بایتهای اصلی صوتی بدون تغییر باقی میمانند و از طریق صداهای جاسازیشده یا مجموعه صوتی ارائه در دسترس هستند.