إدارة الصوت في العروض التقديمية باستخدام Python
إنشاء إطارات صوتية
Aspose.Slides for Python via .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 for Python via .NET يسمح لك بتغيير الخيارات التي تتحكم في تشغيل الصوت أو خصائصه. على سبيل المثال، يمكنك تعديل حجم الصوت، ضبط تشغيل الصوت بصورة متكررة، أو حتى إخفاء أيقونة الصوت.
لوحة Audio Options في Microsoft PowerPoint:

خيارات Audio Options في PowerPoint التي تتطابق مع خصائص Aspose.Slides AudioFrame :
- قائمة 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 التي تتطابق مع خصائص Aspose.Slides AudioFrame :
- 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 . يتيح لك تعديل حجم الصوت بالنسبة المئوية.
هذه هي الطريقة لتغيير خيارات تشغيل الصوت:
- Сreate أو الحصول على إطار الصوت.
- تعيين القيم الجديدة للخصائص التي تريد تعديلها في إطار الصوت.
- حفظ ملف PowerPoint المعدل.
هذا الكود بلغة Python يوضح عملية تعديل خيارات الصوت:
import aspose.slides as slides
with slides.Presentation("AudioFrameEmbed_out.pptx") as pres:
# الحصول على شكل AudioFrame
audioFrame = pres.slides[0].shapes[0]
# تعيين وضع التشغيل ليعمل عند النقر
audioFrame.play_mode = slides.AudioPlayModePreset.ON_CLICK
# تعيين مستوى الصوت إلى منخفض
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
# تعيين مدة التلاشي التدريجي إلى 200 مللي ثانية
audio_frame.fade_in_duration = 200.0
# تعيين مدة التلاشي التدريجي إلى 500 مللي ثانية
audio_frame.fade_out_duration = 500.0
pres.save("AudioFrameTrimFade_out.pptx", slides.export.SaveFormat.PPTX)
العينة البرمجية التالية توضح كيفية استرجاع إطار صوتي مع صوت مدمج وتعيين مستوى الصوت إلى 85%:
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، التكرار عبر المسارات الموجودة، وإزالتها عند الحاجة.
إضافة تسميات صوتية
استخدم الخاصية 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.
presentation.save("audio_with_captions.pptx", slides.export.SaveFormat.PPTX)
استخراج تسميات الصوت
يمكنك التكرار عبر مسارات التسمية المرتبطة بإطار صوتي وحفظها كملفات .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)
إزالة تسميات الصوت
لإزالة التسميات من إطار صوتي، استخدم الأساليب المتوفرة في 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 for Python via .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)))
FAQ
هل يمكنني إعادة استخدام نفس ملف الصوت عبر عدة شرائح دون زيادة حجم الملف؟
نعم. أضف الصوت مرة واحدة إلى audio collection المشتركة في العرض التقديمي وأنشئ إطارات صوتية إضافية تُشير إلى ذلك الأصل. هذا يمنع تكرار بيانات الوسائط ويحافظ على حجم العرض تحت السيطرة.
هل يمكنني استبدال الصوت في إطار صوتي موجود دون إنشاء الشكل من جديد؟
نعم. بالنسبة لصوت مرتبط، قم بتحديث link path للإشارة إلى الملف الجديد. بالنسبة لصوت مدمج، استبدل كائن embedded audio بآخر من audio collection الخاصة بالعرض. يظل تنسيق الإطار ومعظم إعدادات التشغيل كما هي.
هل يؤدي القص إلى تغيير بيانات الصوت الأساسية المخزنة في العرض التقديمي؟
لا. القص يضبط حدود التشغيل فقط. تظل بايتات الصوت الأصلية دون تغيير ويمكن الوصول إليها عبر الصوت المدمج أو مجموعة الصوت في العرض.