.NET'te Sunumlarda Video Çerçevelerini Yönetme
Giriş
Bir sunumda iyi konumlandırılmış bir video, mesajınızı daha etkileyici hale getirebilir ve izleyicilerinizle etkileşim seviyelerini artırabilir.
PowerPoint, sunumda bir slayta video eklemenize iki şekilde izin verir:
- Yerel bir videoyu ekleyin veya gömün (makinenizde saklanan)
- Çevrimiçi bir video ekleyin (YouTube gibi bir web kaynağından).
Sunumda video (video nesneleri) eklemenizi sağlamak için Aspose.Slides, IVideo arabirimini, IVideoFrame arabirimini ve diğer ilgili türleri sağlar.
Gömülü Video Çerçevesi Oluşturma
Slaytınıza eklemek istediğiniz video dosyası yerel olarak depolanmışsa, videoyu sunumunuza gömmek için bir video çerçevesi oluşturabilirsiniz.
- Bir Presentation sınıfı örneği oluşturun.
- Dizin üzerinden bir slaydın referansını alın.
- Bir IVideo nesnesi ekleyin ve videoyu sunuma gömmek için video dosya yolunu geçirin.
- Videoyu bir çerçeveye yerleştirmek için bir IVideoFrame nesnesi ekleyin.
- Değiştirilmiş sunumu kaydedin.
Bu C# kodu, yerel olarak depolanan bir videoyu sunuma nasıl ekleyeceğinizi gösterir:
// Presentation sınıfının bir örneğini oluşturur
using (Presentation pres = new Presentation("pres.pptx"))
{
// Videoyu yükler
using (FileStream fileStream = new FileStream("Wildlife.mp4", FileMode.Open, FileAccess.Read))
{
IVideo video = pres.Videos.AddVideo(fileStream, LoadingStreamBehavior.KeepLocked);
// İlk slaytı alır ve bir video çerçevesi ekler
pres.Slides[0].Shapes.AddVideoFrame(10, 10, 150, 250, video);
// Sunumu diske kaydeder
pres.Save("pres-with-video.pptx", SaveFormat.Pptx);
}
}
Alternatif olarak, video dosya yolunu doğrudan AddVideoFrame metoduna geçirerek bir video ekleyebilirsiniz:
using (Presentation pres = new Presentation())
{
ISlide sld = pres.Slides[0];
IVideoFrame vf = sld.Shapes.AddVideoFrame(50, 150, 300, 150, "video1.avi");
}
Web Kaynağından Video ile Video Çerçevesi Oluşturma
Microsoft PowerPoint 2013 ve üzeri sunumlarda YouTube videolarını destekler. Kullanmak istediğiniz video çevrimiçi olarak mevcutsa (ör. YouTube’da), web bağlantısı aracılığıyla sunumunuza ekleyebilirsiniz.
- Bir Presentation sınıfı örneği oluşturun.
- Dizin üzerinden bir slaydın referansını alın.
- Bir IVideo nesnesi ekleyin ve videoya ait bağlantıyı geçirin.
- Video çerçevesi için bir ön izleme resmi ayarlayın.
- Sunumu kaydedin.
Bu C# kodu, web’den bir videoyu PowerPoint sunumundaki bir slayta nasıl ekleyeceğinizi gösterir:
public static void Run()
{
// Bir sunum dosyasını temsil eden Presentation nesnesinin bir örneğini oluşturur
using (Presentation pres = new Presentation())
{
AddVideoFromYouTube(pres, "Tj75Arhq5ho");
pres.Save("AddVideoFrameFromWebSource_out.pptx", SaveFormat.Pptx);
}
}
private static void AddVideoFromYouTube(Presentation pres, string videoId)
{
// Bir VideoFrame ekler
IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId);
videoFrame.PlayMode = VideoPlayModePreset.Auto;
// Ön izleme resmini yükler
using (WebClient client = new WebClient())
{
string thumbnailUri = "http://img.youtube.com/vi/" + videoId + "/hqdefault.jpg";
videoFrame.PictureFormat.Picture.Image = pres.Images.AddImage(client.DownloadData(thumbnailUri));
}
}
Video Altyazılarını Yönetme
Aspose.Slides, PowerPoint sunumlarındaki video çerçeveleri için kapalı altyazıları yönetmenizi sağlar. Altyazılar WebVTT formatında depolanır ve IVideoFrame.CaptionTracks özelliği aracılığıyla sunulur.
Video Çerçevesine Altyazı Ekleme
Bir video çerçevesine altyazı eklemek için:
- Bir Presentation sınıfı örneği oluşturun.
- Sunuma bir video ekleyin.
- Bir slayta bir IVideoFrame nesnesi ekleyin.
- Bir WebVTT altyazı izi eklemek için CaptionTracks koleksiyonunu kullanın.
- Değiştirilmiş sunumu kaydedin.
Aşağıdaki kod, bir video çerçevesine altyazı eklemenin nasıl yapılacağını gösterir:
using (Presentation presentation = new Presentation())
{
byte[] videoData = File.ReadAllBytes("video.mp4");
IVideo video = presentation.Videos.AddVideo(videoData);
ISlide slide = presentation.Slides[0];
IVideoFrame videoFrame = slide.Shapes.AddVideoFrame(0, 0, 100, 100, video);
// WebVTT dosyasından yeni bir altyazı izi ekler.
videoFrame.CaptionTracks.Add("English", "track.vtt");
presentation.Save("video_with_captions.pptx", SaveFormat.Pptx);
}
ICaptionsCollection arabirimi ayrıca bir akıştan altyazı eklemenizi sağlayan bir aşırı yükleme sunar.
Video Çerçevesinden Altyazı Çıkarma
Bir video çerçevesinden altyazı çıkarmak için:
- Videoyu içeren sunumu yükleyin.
- Hedef IVideoFrame nesnesini bulun.
- CaptionTracks koleksiyonunda döngü yapın.
- Her altyazı izini bir
.vttdosyasına kaydedin.
Aşağıdaki kod, bir video çerçevesinden altyazı çıkarmanın nasıl yapılacağını gösterir:
using (Presentation presentation = new Presentation("video_with_captions.pptx"))
{
ISlide slide = presentation.Slides[0];
foreach (IShape shape in slide.Shapes)
{
if (shape is IVideoFrame videoFrame)
{
foreach (ICaptions captionTrack in videoFrame.CaptionTracks)
{
// Altyazı izini bir WebVTT dosyasına kaydeder.
string filePath = $"{captionTrack.CaptionId}.vtt";
File.WriteAllBytes(filePath, captionTrack.BinaryData);
}
}
}
}
Her bir ICaptions nesnesi altyazı kimliğini, etiketini, ikili veriyi ve altyazı metnini UTF-8 dizesi olarak sunar.
Video Çerçevesinden Altyazı Kaldırma
Bir video çerçevesinden altyazı kaldırmak için:
- Videoyu içeren sunumu yükleyin.
- Hedef IVideoFrame nesnesini alın.
- CaptionTracks koleksiyonundan altyazı izlerini kaldırın.
- Değiştirilmiş sunumu kaydedin.
Aşağıdaki kod, bir video çerçevesinden tüm altyazıları kaldırmanın nasıl yapılacağını gösterir:
using (Presentation presentation = new Presentation("video_with_captions.pptx"))
{
ISlide slide = presentation.Slides[0];
IVideoFrame videoFrame = slide.Shapes[0] as IVideoFrame;
// Video çerçevesindeki tüm altyazıları kaldırır.
videoFrame.CaptionTracks.Clear();
presentation.Save("video_without_captions.pptx", SaveFormat.Pptx);
}
Yalnızca tek bir altyazı izini kaldırmanız gerekiyorsa, Clear yerine Remove veya RemoveAt metodlarını kullanın.
Slayttan Video Çıkarma
Videoları slaytlara eklemenin yanı sıra, Aspose.Slides sunumlara gömülü videoları çıkarmanıza da olanak tanır.
- Videoyu içeren sunumu yüklemek için bir Presentation sınıfı örneği oluşturun.
- Tüm ISlide nesnelerinde dolaşın.
- Bir VideoFrame bulmak için tüm IShape nesnelerinde dolaşın.
- Videoyu diske kaydedin.
Bu C# kodu, bir sunum slaydındaki videoyu nasıl çıkaracağınızı gösterir:
// Bir sunum dosyasını temsil eden Presentation nesnesinin bir örneğini oluşturur
Presentation presentation = new Presentation("Video.pptx");
// Slaytlar arasında döner
foreach (ISlide slide in presentation.Slides)
{
// Şekiller arasında döner
foreach (IShape shape in presentation.Slides[0].Shapes)
{
// Video içeren VideoFrame bulunduğunda videoyu diske kaydeder
if (shape is VideoFrame)
{
IVideoFrame vf = shape as IVideoFrame;
String type = vf.EmbeddedVideo.ContentType;
int ss = type.LastIndexOf('/');
type = type.Remove(0, type.LastIndexOf('/') + 1);
Byte[] buffer = vf.EmbeddedVideo.BinaryData;
using (FileStream stream = new FileStream("NewVideo_out." + type, FileMode.Create, FileAccess.Write, FileShare.Read))
{
stream.Write(buffer, 0, buffer.Length);
}
}
}
}
SSS
Bir VideoFrame için hangi video oynatma parametreleri değiştirilebilir?
playback mode (otomatik veya tıklama) ve looping kontrol edilebilir. Bu seçenekler, VideoFrame nesnesinin özellikleri aracılığıyla kullanılır.
Video eklemek PPTX dosya boyutunu etkiler mi?
Evet. Yerel bir video gömülürken ikili veri belgeye eklenir, bu yüzden sunum boyutu dosya boyutuyla orantılı olarak artar. Çevrimiçi bir video eklediğinizde bir bağlantı ve ön izleme resmi gömülür, bu nedenle boyut artışı daha azdır.
Mevcut bir VideoFrame’deki videoyu konum ve boyutunu değiştirmeden değiştirebilir miyim?
Evet. Çerçeve içindeki video content değiştirilebilir, şeklin geometrisi korunur; bu, mevcut bir yerleşimde medyanın güncellenmesi için yaygın bir senaryodur.
Gömülü bir videonun içerik türü (MIME) belirlenebilir mi?
Evet. Gömülü bir videonun okunup kullanılabilecek bir content type vardır, örneğin diske kaydederken.