Android'de Sunumlarda Video Çerçevelerini Yönetme
Giriş
Sunumda iyi yerleştirilmiş bir video, mesajınızı daha etkileyici hâle getirebilir ve izleyicinizle etkileşim seviyelerini artırabilir.
PowerPoint, bir sunumdaki slayta video eklemenizi iki şekilde sağlar:
- Yerel bir video ekleyin veya gömün (bilgisayarınızda depolanmış)
- Çevrimiçi bir video ekleyin (YouTube gibi bir web kaynağından).
Sunuma video (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 depolanıyorsa, videoyu sunuma gömmek için bir video çerçevesi oluşturabilirsiniz.
- Presentation sınıfının bir örneğini oluşturun.
- Slaytın indeksine göre referansını alın.
- IVideo nesnesi ekleyin ve videoyu sunuya gömmek için video dosya yolunu geçin.
- Video için bir çerçeve oluşturmak üzere bir IVideoFrame nesnesi ekleyin.
- 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, video 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 inin yeni sürümleri, sunularda çevrimiçi videoları destekler. Kullanmak istediğiniz video çevrimiçi olarak (ör. YouTube’da) mevcutsa, web bağlantısı aracılığıyla sununuza ekleyebilirsiniz.
- Presentation sınıfının bir örneğini oluşturun
- Slaytın indeksine göre referansını alın.
- Bir IVideo nesnesi ekleyin ve videonun bağlantısını geçin.
- Video çerçevesi için bir küçük resim ayarlayın.
- Sunumu kaydedin.
Bu Java kodu, web üzerindeki bir videoyu PowerPoint sunumundaki bir slayta nasıl ekleyeceğinizi gösterir:
// Sunum dosyasını temsil eden bir Presentation nesnesi ö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 Çerçevesini Kırpma
Aspose.Slides, bir videonun hangi bölümünün oynatılacağını IVideoFrame.setTrimFromStart ve IVideoFrame.setTrimFromEnd aracılığıyla trim‑from‑start ve trim‑from‑end değerlerini ayarlayarak kontrol etmenizi sağlar. Her iki değer de milisaniye cinsindendir ve videonun başından ve sonundan kaç saniye atlanacağını tanımlar. Bu ayarlar sunumdaki video oynatma ayarlarını değiştirir; gömülü video ikili verisini kesmez veya başka bir şekilde değiştirmez.
Kırpma Ayarlarını Belirleme
Bir video çerçevesi oluşturup kırpma ayarlarını belirlemek için:
- Presentation sınıfının bir örneğini oluşturun.
- Sunuma bir IVideo nesnesi ekleyin.
- Bir slayta bir IVideoFrame nesnesi ekleyin.
- IVideoFrame.setTrimFromStart ve IVideoFrame.setTrimFromEnd aracılığıyla trim‑from‑start ve trim‑from‑end değerlerini ayarlayın.
- Değiştirilmiş sunumu kaydedin.
Aşağıdaki kod örneği, gömülü bir videonun oynatma sırasında ilk 2,5 saniyesini ve son bir saniyesini atlar:
Presentation presentation = new Presentation();
try {
FileInputStream videoStream = new FileInputStream("video.mp4");
try {
IVideo video = presentation.getVideos().addVideo(
videoStream, LoadingStreamBehavior.ReadStreamAndRelease);
ISlide slide = presentation.getSlides().get_Item(0);
IVideoFrame videoFrame = slide.getShapes().addVideoFrame(50, 50, 640, 360, video);
videoFrame.setTrimFromStart(2500f);
videoFrame.setTrimFromEnd(1000f);
presentation.save("video_with_trim.pptx", SaveFormat.Pptx);
} finally {
videoStream.close();
}
} finally {
presentation.dispose();
}
Kırpma Ayarlarını Okuma
Mevcut kırpma ayarlarını incelemek için bir sunumu yükleyin, ilk slayttaki şekiller arasında bir IVideoFrame nesnesi bulun ve değerleri IVideoFrame.getTrimFromStart ve IVideoFrame.getTrimFromEnd aracılığıyla okuyun.
Aşağıdaki kod örneği, ilk slayttaki ilk video çerçevesini bulur ve kırpma ayarlarını milisaniye olarak raporlar:
Presentation presentation = new Presentation("video_with_trim.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
for (IShape shape : slide.getShapes()) {
if (shape instanceof IVideoFrame) {
IVideoFrame videoFrame = (IVideoFrame) shape;
float trimFromStart = videoFrame.getTrimFromStart();
float trimFromEnd = videoFrame.getTrimFromEnd();
System.out.println("Trim from start: " + trimFromStart + " ms");
System.out.println("Trim from end: " + trimFromEnd + " ms");
break;
}
}
} finally {
presentation.dispose();
}
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.
Bir Video Çerçevesine Altyazı Ekleme
Bir video çerçevesine altyazı eklemek için:
- 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 aracını kullanarak bir WebVTT altyazı izini ekleyin.
- Değiştirilmiş sunumu kaydedin.
Aşağıdaki kod, bir video çerçevesine altyazı eklemeyi 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);
// WebVTT dosyasından yeni bir altyazı izi ekler.
videoFrame.getCaptionTracks().add("English", "track.vtt");
presentation.save("video_with_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ICaptionsCollection arabirimi ayrıca bir akıştan altyazı eklemenizi sağlayan bir aşırı yüklü metod da sunar.
Bir 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 arasında gezin.
- Her altyazı izini bir
.vttdosyasına kaydedin.
Aşağıdaki kod, bir video çerçevesinden altyazı çıkarmayı 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ı tanımlayıcısını, etiketini, ikili verisini ve altyazı verisini UTF‑8 dizesi olarak ortaya çıkarır.
Bir Video Çerçevesinden Altyazı Silme
Bir video çerçevesinden altyazı silmek 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çevesindeki 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çevesinden tüm altyazıları kaldırır.
videoFrame.getCaptionTracks().clear();
presentation.save("video_without_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Yalnızca tek bir altyazı izini kaldırmanız gerekiyorsa, clear yerine remove veya removeAt metodunu kullanın.
Bir Slayttan Video Çıkarma
Videoları slaytlara eklemenin yanı sıra, Aspose.Slides gömülü videoları sunumlardan çıkarmanıza da imkan tanır.
- Videoyu içeren sunumu yüklemek için bir Presentation sınıfı örneği oluşturun.
- Tüm ISlide nesneleri arasında gezin.
- IShape nesneleri arasında dolaşarak bir VideoFrame bulun.
- Videoyu diske kaydedin.
Bu Java kodu, bir sunum slaytındaki videoyu nasıl çıkaracağınızı gösterir:
// Sunum dosyasını temsil eden bir Presentation nesnesi ö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
Bir VideoFrame için hangi video oynatma parametreleri değiştirilebilir?
playback mode (otomatik ya da tıklamayla) ve looping seçeneklerini kontrol edebilirsiniz. Bu seçenekler, VideoFrame nesnesinin özellikleri aracılığıyla kullanılabilir.
Bir video eklemek PPTX dosya boyutunu etkiler mi?
Evet. Yerel bir video gömdüğünüzde ikili veri belgeye dahil olur, bu da sunum boyutunun dosya boyutuyla orantılı olarak artmasına yol açar. Çevrimiçi bir video eklediğinizde bir bağlantı ve küçük resim gömülür, bu yüzden boyut artışı daha küçüktür.
Varolan bir VideoFrame içindeki videoyu konumunu ve boyutunu değiştirmeden değiştirebilir miyim?
Evet. Çerçeve içindeki video content öğesini değiştirerek şeklin geometrisini koruyabilirsiniz; 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 özelliği vardır, örneğin diske kaydederken.