Presentasyonlarda JavaScript Kullanarak Ses Yönetimi

Genel Bakış

Bu makale, Aspose.Slides içinde ses çerçeveleriyle nasıl çalışılacağını açıklar. Kaydırımlara gömülü ses ekleme, ses çerçevesi küçük resmini özelleştirme, ses seviyesi, döngü, gizleme, kırpma ve geçiş süreleri gibi oynatma seçeneklerini yapılandırma ve slayt gösterisi geçişlerinde kullanılan sesleri çıkarma yöntemlerini gösterir.

Ses Çerçeveleri Oluşturma

Aspose.Slides for Node.js via Java, ses dosyalarını slaytlara eklemenizi sağlar. Ses dosyaları slaytlara ses çerçeveleri olarak gömülür.

  1. Sunum sınıfının bir Presentation örneğini oluşturun.
  2. Slaytın referansını dizini aracılığıyla alın.
  3. Slayta gömmek istediğiniz ses dosyası akışını yükleyin.
  4. Gömülü ses çerçevesini (ses dosyasını içeren) slayta ekleyin.
  5. PlayMode ve Volume‘u AudioFrame nesnesi tarafından sunulan şekilde ayarlayın.
  6. Değiştirilmiş sunumu kaydedin.

Bu JavaScript kodu, bir kaydırıma gömülü ses çerçevesi eklemenin nasıl yapılacağını gösterir:

// Bir sunum dosyasını temsil eden Presentation sınıfını örnekler
const pres = new aspose.slides.Presentation();
try {
    // İlk slaytı alır
    const sld = pres.getSlides().get_Item(0);
    // wav ses dosyasını akışa yükler
    const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav"));
    // Ses Çerçevesini ekler
    const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr);
    fstr.close();
    // Sesin Oynatma Modunu ve Ses Seviyesini ayarlar
    audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto);
    audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud);
    // PowerPoint dosyasını diske yazar
    pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx);
} catch (e) {console.log(e);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Ses Çerçevesi Küçük Resmini Değiştirme

Bir sunuma ses dosyası eklediğinizde, ses standart bir varsayılan resimle çerçeve olarak görünür (aşağıdaki bölüme bakın). Ses çerçevesinin önizleme resmini (istediğiniz resmi ayarlayarak) değiştirebilirsiniz.

Bu JavaScript kodu, bir ses çerçevesinin küçük resmi veya önizleme görüntüsünü nasıl değiştireceğinizi gösterir:

const presentation = new aspose.slides.Presentation();
try {
    const slide = presentation.getSlides().get_Item(0);
    // Belirtilen konum ve boyutla slayta bir ses çerçevesi ekler.
    const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3");
    const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream);
    audioStream.close();
    // Sunum kaynaklarına bir resim ekler.
    let picture;
    const image = aspose.slides.Images.fromFile("eagle.jpeg");
    try {
        picture = presentation.getImages().addImage(image);
    } finally {
        if (image != null) {
            image.dispose();
        }
    }
    // Ses çerçevesi için resmi ayarlar.
    audioFrame.getPictureFormat().getPicture().setImage(picture);// <-----
    // Değiştirilmiş sunumu diske kaydeder
    presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx);
} catch (e) {console.log(e);
} finally {
    if (presentation != null) {
        presentation.dispose();
    }
}

Ses Oynatma Seçeneklerini Değiştirme

Aspose.Slides for Node.js via Java, bir sesin oynatma davranışını veya özelliklerini kontrol eden seçenekleri değiştirmenize olanak tanır. Örneğin, ses seviyesini ayarlayabilir, sesi döngü halinde çalacak şekilde ayarlayabilir veya ses simgesini bile gizleyebilirsiniz.

Microsoft PowerPoint’teki Audio Options bölmesi:

example1_image

PowerPoint Audio Options bölmesi, Aspose.Slides [AudioFrame] özelliklerine karşılık gelir:

PowerPoint Editing seçenekleri, Aspose.Slides [AudioFrame] özelliklerine karşılık gelir:

PowerPoint Volume control ses kontrol panelindeki ses seviyesi, AudioFrame.setVolumeValue metoduna karşılık gelir. Ses seviyesini yüzde olarak değiştirmenizi sağlar.

Ses Oynatma seçeneklerini nasıl değiştireceğiniz aşağıda gösterilmiştir:

  1. Create veya ses çerçevesini alın.
  2. Ayarlamak istediğiniz Audio Frame özellikleri için yeni değerler atayın.
  3. Değiştirilmiş PowerPoint dosyasını kaydedin.

Bu JavaScript kodu, bir sesin seçeneklerinin ayarlandığı bir işlemi gösterir:

const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx");
try {
    // AudioFrame şekilini alır
    const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0);
    // Oynatma modunu tıklayınca çalacak şekilde ayarlar
    audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick);
    // Ses seviyesini Düşük olarak ayarlar
    audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low);
    // Sesin slaytlar arasında çalmasını ayarlar
    audioFrame.setPlayAcrossSlides(true);
    // Ses için döngüyü devre dışı bırakır
    audioFrame.setPlayLoopMode(false);
    // Ses çerçevesini slayt gösterisi sırasında gizler
    audioFrame.setHideAtShowing(true);
    // Sesin çaldıktan sonra başa sarılmasını ayarlar
    audioFrame.setRewindAudio(true);
    // PowerPoint dosyasını diske kaydeder
    pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Bu JavaScript örneği, gömülü ses içeren yeni bir ses çerçevesi eklemeyi, kırpmayı ve geçiş sürelerini ayarlamayı gösterir:

const pres = new aspose.slides.Presentation();
try {
    const slide = pres.getSlides().get_Item(0);
    
    const audioData = java.newArray("byte", Array.from(fs.readFileSync("sampleaudio.mp3")));
    const audio = pres.getAudios().addAudio(audioData);
    const audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio);

    // Kırpma başlangıç ofsetini 1.5 saniyeye ayarlar
    audioFrame.setTrimFromStart(1500);
    // Kırpma bitiş ofsetini 2 saniyeye ayarlar
    audioFrame.setTrimFromEnd(2000);

    // Fade-in süresini 200 ms olarak ayarlar
    audioFrame.setFadeInDuration(200);
    // Fade-out süresini 500 ms olarak ayarlar
    audioFrame.setFadeOutDuration(500);

    pres.save("AudioFrameTrimFade_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    pres.dispose();
}

Aşağıdaki kod örneği, gömülü ses içeren bir ses çerçevesini almayı ve ses seviyesini %85 olarak ayarlamayı gösterir:

const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx");
try {
    const slide = pres.getSlides().get_Item(0);

    // Bir ses çerçevesi şekli alır
    const audioFrame = slide.getShapes().get_Item(0);

    // Ses seviyesini %85 olarak ayarlar
    audioFrame.setVolumeValue(85.0);

    pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx);
}
finally {
    pres.dispose();
}

Ses Altyazılarını Yönetme

Aspose.Slides, bir ses çerçevesine kapalı altyazı eklemenizi getCaptionTracks metodu aracılığıyla sağlar. Bu metod, WebVTT altyazı izlerini eklemenize, mevcut izler arasında dolaşmanıza ve gerektiğinde kaldırmanıza olanak tanıyan bir CaptionsCollection döndürür.

Ses Altyazılarını Ekleme

getCaptionTracks metodunu kullanarak bir ses çerçevesine bir veya daha fazla altyazı izi ekleyin. Aşağıdaki örnekte, bir ses dosyası slayta eklenir ve ardından yeni bir altyazı izi .vtt dosyasından yüklenir.

let presentation = new aspose.slides.Presentation();
try {
    let audioStream = java.newInstanceSync("java.io.FileInputStream", "audio.mp3");
    let audio = presentation.getAudios().addAudio(audioStream);
    audioStream.close();

    let slide = presentation.getSlides().get_Item(0);
    let audioFrame = slide.getShapes().addAudioFrameEmbedded(10, 10, 50, 50, audio);

    // WebVTT dosyasından yeni bir altyazı izi ekle.
    audioFrame.getCaptionTracks().add("New track", "track.vtt");

    presentation.save("audio_with_captions.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Ses Altyazılarını Çıkarma

Bir ses çerçevesine ilişkilendirilmiş altyazı izleri arasında dolaşabilir ve bunları .vtt dosyaları olarak kaydedebilirsiniz. Her altyazı izi ikili verisini ve benzersiz kimliğini ortaya çıkarır; bu, altyazıları dışa aktarırken kullanılabilir.

let presentation = new aspose.slides.Presentation("audio_with_captions.pptx");
try {
    let slide = presentation.getSlides().get_Item(0);
    let shapeCount = slide.getShapes().size();
    for (let shapeIndex = 0; shapeIndex < shapeCount; shapeIndex++) {
        let shape = slide.getShapes().get_Item(shapeIndex);
        if (java.instanceOf(shape, "com.aspose.slides.AudioFrame")) {
            let audioFrame = shape;
            let trackCount = audioFrame.getCaptionTracks().getCount();
            for (let trackIndex = 0; trackIndex < trackCount; trackIndex++) {
                let captionTrack = audioFrame.getCaptionTracks().get_Item(trackIndex);
                // Caption izini .vtt dosyası olarak kaydet.
                let filePath = captionTrack.getCaptionId() + ".vtt";
                let captionData = Buffer.from(captionTrack.getBinaryData());
                fs.writeFileSync(filePath, captionData);
            }
        }
    }
} finally {
    presentation.dispose();
}

Ses Altyazılarını Kaldırma

Bir ses çerçevesinden altyazıları kaldırmak için CaptionsCollection tarafından sağlanan clear, remove veya removeAt gibi metodları kullanın. Aşağıdaki örnek, bir ses çerçevesindeki tüm altyazı izlerini kaldırır.

let presentation = new aspose.slides.Presentation("audio_with_captions.pptx");
try {
    let slide = presentation.getSlides().get_Item(0);
    let audioFrame = slide.getShapes().get_Item(0); // tür: aspose.slides.AudioFrame

    // Ses çerçevesinden tüm altyazı izlerini kaldır.
    audioFrame.getCaptionTracks().clear();

    presentation.save("audio_without_captions.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Ses Çıkarma

Aspose.Slides for Node.js via Java, slayt gösterisi geçişlerinde kullanılan sesi çıkarmanıza olanak tanır. Örneğin, belirli bir slaytta kullanılan sesi çıkarabilirsiniz.

  1. Ses içeren sunumu yüklemek için bir Presentation sınıfı örneği oluşturun ve sunumu yükleyin.
  2. İlgili slaytın referansını dizini aracılığıyla alın.
  3. Slayt için slideshow transitions erişin.
  4. Sesi bayt verisi olarak çıkarın.

Bu JavaScript kodu, bir slaytta kullanılan sesi nasıl çıkaracağınızı gösterir:

// Bir sunum dosyasını temsil eden Presentation sınıfını örnekler
const pres = new aspose.slides.Presentation("AudioSlide.pptx");
try {
    // İstenen slayta erişir
    const slide = pres.getSlides().get_Item(0);
    // Slayt için slayt gösterisi geçiş efekti alır
    const transition = slide.getSlideShowTransition();
    // Sesi bayt dizisi olarak çıkarır
    const audio = transition.getSound().getBinaryData();
    console.log("Length: " + audio.length);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

SSS

Aynı ses varlığını birden fazla slaytta dosya boyutunu artırmadan yeniden kullanabilir miyim?

Evet. Sesi, sunumun paylaşılan audio collection koleksiyonuna bir kez ekleyin ve mevcut varlığı referans alan ek ses çerçeveleri oluşturun. Bu, medya verilerinin çoğaltılmasını önler ve sunum boyutunu kontrol altında tutar.

Mevcut bir ses çerçevesindeki sesi şekli yeniden oluşturmadan değiştirebilir miyim?

Evet. Bağlantılı bir ses için, link path değerini yeni dosyaya gösterecek şekilde güncelleyin. Gömülü bir ses için, embedded audio nesnesini sunumun audio collection koleksiyonundaki başka bir sesle değiştirin. Çerçevenin formatı ve çoğu oynatma ayarı aynı kalır.

Kırpma, sunumda saklanan temel ses verisini değiştirir mi?

Hayır. Kırpma yalnızca oynatma sınırlarını ayarlar. Orijinal ses baytları dokunulmamış olarak kalır ve gömülü ses ya da sunumun ses koleksiyonu aracılığıyla erişilebilir.