Android'de Sunumlarda Video Çerçevelerini Yönetme
Giriş
Sunumda iyi yerleştirilmiş bir video, mesajınızı daha etkileyici hâle getirebilir ve izleyicilerinizle etkileşim seviyelerini artırabilir.
PowerPoint, bir sunumdaki slayta videolar eklemenizi iki şekilde sağlar:
- Yerel bir video ekleyin veya gömün (makinenizde depolanmış)
- Çevrimiçi bir video ekleyin (YouTube gibi bir web kaynağından).
Sunuma videolar (video nesneleri) eklemenizi sağlamak için, Aspose.Slides IVideo arabirimini, IVideoFrame arabirimini ve diğer ilgili türleri sunar.
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ının bir örneğini oluşturun.
- Slaytın referansını indeks üzerinden alın.
- Bir IVideo nesnesi ekleyin ve video dosyası yolunu geçerek videoyu sunuma gömün.
- IVideoFrame nesnesi ekleyerek video için bir çerçeve oluşturun.
- Değiştirilmiş sunumu kaydedin.
Bu Java kodu, yerel olarak depolanmış bir videoyu sunuma nasıl ekleyeceğinizi gösterir:
// Presentation sınıfını örnekler
Presentation pres = new Presentation("pres.pptx");
try {
// Videoyu yükler
FileInputStream fileStream = new FileInputStream("Wildlife.mp4");
IVideo video = pres.getVideos().addVideo(fileStream, LoadingStreamBehavior.KeepLocked);
// İlk slaytı alır ve bir video çerçevesi ekler
pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video);
// Sunumu diske kaydeder
pres.save("pres-with-video.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Alternatif olarak, dosya yolunu doğrudan addVideoFrame(float x, float y, float width, float height, IVideo video) metoduna geçirerek bir video ekleyebilirsiniz:
Presentation pres = new Presentation();
try {
ISlide sld = pres.getSlides().get_Item(0);
IVideoFrame vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi");
} finally {
if (pres != null) pres.dispose();
}
Web Kaynağından Video ile Video Çerçevesi Oluşturma
Microsoft PowerPoint 2013 ve daha yeni sürümler sunumlarda YouTube videolarını destekler. Kullanmak istediğiniz video çevrimiçi olarak mevcutsa (ör. YouTube’da), web bağlantısı üzerinden sunumunuza ekleyebilirsiniz.
- Bir Presentation sınıfının bir örneğini oluşturun
- Slaytın referansını indeks üzerinden alın.
- Bir IVideo nesnesi ekleyin ve videonun bağlantısını geçirin.
- Video çerçevesi için bir küçük resim ayarlayın.
- Sunumu kaydedin.
Bu Java kodu, web üzerinden bir videoyu PowerPoint sunumundaki bir slayta nasıl ekleyeceğinizi gösterir:
// Bir sunum dosyasını temsil eden Presentation nesnesini örnekler
Presentation pres = new Presentation();
try {
addVideoFromYouTube(pres, "Tj75Arhq5ho");
pres.save("out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
private static void addVideoFromYouTube(Presentation pres, String videoID)
{
// Bir video çerçevesi ekler
IVideoFrame videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(
10, 10, 427, 240, "https://www.youtube.com/embed/" + videoID);
videoFrame.setPlayMode(VideoPlayModePreset.Auto);
// Küçük resmi yükler
String thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg";
URL url;
try {
url = new URL(thumbnailUri);
videoFrame.getPictureFormat().getPicture().setImage(pres.getImages().addImage(url.openStream()));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
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.getCaptionTracks yöntemi aracılığıyla sunulur.
Video Çerçevesine Altyazı Ekleme
Bir video çerçevesine altyazı eklemek için:
- Bir Presentation sınıfının bir örneğini oluşturun.
- Sunuma bir video ekleyin.
- Bir slayta bir IVideoFrame nesnesi ekleyin.
- getCaptionTracks tarafından döndürülen ICaptionsCollection kullanarak bir WebVTT altyazı izini ekleyin.
- Değiştirilmiş sunumu kaydedin.
İşte aşağıdaki kod, bir video çerçevesine altyazı eklemenizi gösterir:
Presentation presentation = new Presentation();
try {
byte[] videoData = // "video.mp4";
IVideo video = presentation.getVideos().addVideo(videoData);
ISlide slide = presentation.getSlides().get_Item(0);
IVideoFrame videoFrame = slide.getShapes().addVideoFrame(0, 0, 100, 100, video);
// Yeni bir WebVTT dosyasından altyazı izi ekler.
videoFrame.getCaptionTracks().add("English", "track.vtt");
presentation.save("video_with_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ICaptionsCollection arabirimi, akıştan altyazı eklemenizi sağlayan bir aşırı yükleme daha sunar.
Video Çerçevesinden Altyazı Çıkarma
Bir video çerçevesinden altyazı çıkarmak için:
- Videoyu içeren sunumu yükleyin.
- Hedef IVideoFrame nesnesini bulun.
- getCaptionTracks tarafından döndürülen altyazı izleri üzerinden döngü oluşturun.
- Her bir altyazı izini bir
.vttdosyasına kaydedin.
Aşağıdaki kod, bir video çerçevesinden altyazı nasıl çıkarılacağını gösterir:
Presentation presentation = new Presentation("video_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
for (IShape shape : slide.getShapes()) {
if (shape instanceof IVideoFrame) {
IVideoFrame videoFrame = (IVideoFrame) shape;
for (ICaptions captionTrack : videoFrame.getCaptionTracks()) {
// Altyazı izini bir WebVTT dosyasına kaydeder.
FileOutputStream outputStream = new FileOutputStream(captionTrack.getCaptionId() + ".vtt");
outputStream.write(captionTrack.getBinaryData());
outputStream.close();
}
}
}
} finally {
presentation.dispose();
}
Her bir ICaptions nesnesi, altyazı kimliğini, etiketini, ikili veriyi ve altyazı verisini 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.
- getCaptionTracks tarafından döndürülen koleksiyondan altyazı izlerini kaldırın.
- Değiştirilmiş sunumu kaydedin.
Aşağıdaki kod, bir video çerçevesinden tüm altyazıların nasıl kaldırılacağını gösterir:
Presentation presentation = new Presentation("video_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IVideoFrame videoFrame = (IVideoFrame) slide.getShapes().get_Item(0);
// Video çerçevesindeki tüm altyazıları kaldırır.
videoFrame.getCaptionTracks().clear();
presentation.save("video_without_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Sadece bir altyazı izini kaldırmanız gerekiyorsa, clear yerine remove veya removeAt yöntemlerini kullanın.
Bir Slayttan Video Çıkarma
Videoları slaytlara eklemenin yanı sıra, Aspose.Slides sunumlarda gömülü videoları çıkarmanıza da olanak tanır.
- Videoyu içeren sunumu yüklemek için bir Presentation sınıfının örneğini oluşturun.
- Tüm ISlide nesneleri üzerinden döngü oluşturun.
- Bir VideoFrame bulmak için tüm IShape nesneleri üzerinden döngü oluşturun.
- Videoyu diske kaydedin.
Bu Java kodu, bir sunum slaytındaki videoyu nasıl çıkaracağınızı gösterir:
// Bir sunum dosyasını temsil eden Presentation nesnesini örnekler
Presentation pres = new Presentation("VideoSample.pptx");
try {
for (ISlide slide : pres.getSlides())
{
for (IShape shape : slide.getShapes())
{
if (shape instanceof VideoFrame)
{
IVideoFrame vf = (IVideoFrame) shape;
String type = vf.getEmbeddedVideo().getContentType();
int ss = type.lastIndexOf('-');
byte[] buffer = vf.getEmbeddedVideo().getBinaryData();
// Dosya uzantısını alır
int charIndex = type.indexOf("/");
type = type.substring(charIndex + 1);
FileOutputStream fop = new FileOutputStream("testing2." + type);
fop.write(buffer);
fop.flush();
fop.close();
}
}
}
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
SSS
VideoFrame için hangi video oynatma parametreleri değiştirilebilir?
playback mode (otomatik veya tıklama ile) ve looping (döngü) kontrol edebilirsiniz. Bu seçenekler, VideoFrame nesnesinin özellikleri aracılığıyla mevcuttur.
Bir video eklemek PPTX dosya boyutunu etkiler mi?
Evet. Yerel bir video gömdüğünüzde, ikili veri belgeye eklenir ve bu nedenle sunumun boyutu dosya boyutuyla orantılı olarak artar. Çevrimiçi bir video eklediğinizde ise bir bağlantı ve küçük resim gömülür, bu yüzden boyut artışı daha küçüktür.
Mevcut bir VideoFrame içindeki videoyu konumunu ve boyutunu değiştirmeden değiştirebilir miyim?
Evet. Çerçevenin içindeki video içeriğini şeklin geometriğini koruyarak değiştirebilirsiniz; bu, mevcut bir düzen içinde medyayı güncellemenin yaygın bir senaryosudur.
Gömülü bir videonun içerik türü (MIME) belirlenebilir mi?
Evet. Gömülü bir videonun okuyabileceğiniz ve örneğin diske kaydederken kullanabileceğiniz bir content type (içerik türü) vardır.