Audio keretek kezelése prezentációkban .NET-ben

Áttekintés

Ez a cikk leírja, hogyan dolgozhat az audio keretekkel az Aspose.Slides‑ban. Bemutatja, hogyan adhat beágyazott hangot a diákhoz, testreszabhatja az audio keret bélyegképét, konfigurálhatja a lejátszási beállításokat, például hangerő, ismétlés, elrejtés, vágás és átfedés időtartamok, valamint hogyan vonhatja ki a diavetítés átmeneteiben használt hangot.

Audio keretek létrehozása

Az Aspose.Slides for .NET lehetővé teszi, hogy hangfájlokat adjon a diákhoz. A hangfájlok audio keretekként vannak beágyazva a diákba.

  1. Hozzon létre egy példányt a Prezentáció osztályból.
  2. Szerezze meg a dia referenciáját az indexe alapján.
  3. Töltse be azt a hangfájl adatfolyamot, amelyet be szeretne ágyazni a diára.
  4. Adja hozzá a beágyazott audio keretet (amely a hangfájlt tartalmazza) a diához.
  5. Állítsa be a PlayMode és a Volume értékeket, amelyeket az IAudioFrame objektum biztosít.
  6. Mentse el a módosított prezentációt.

Ez a C# kód bemutatja, hogyan adhat beágyazott hangkeretet egy diához:

// Egy prezentációs osztály példányosítása, amely egy prezentációs fájlt képvisel
using (Presentation pres = new Presentation())
{
    // Az első diát kapja
    ISlide sld = pres.Slides[0];
    
    // Betölti a wav hangfájlt adatfolyamként
    FileStream fstr = new FileStream("sampleaudio.wav", FileMode.Open, FileAccess.Read);

    // Hozzáadja az Audio keretet
    IAudioFrame audioFrame = sld.Shapes.AddAudioFrameEmbedded(50, 150, 100, 100, fstr);

    // Beállítja a hang lejátszási módját és hangerősségét
    audioFrame.PlayMode = AudioPlayModePreset.Auto;
    audioFrame.Volume = AudioVolumeMode.Loud;

    // Kiírja a PowerPoint fájlt a lemezre
    pres.Save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx);
}

Audio keret bélyegképének módosítása

Amikor egy hangfájlt ad a prezentációhoz, a hang egy keretként jelenik meg egy szabványos alapértelmezett képpel (lásd az alábbi szakaszban lévő képet). Módosíthatja a hangkeret bélyegképét (állítsa be a kívánt képet).

Ez a C# kód bemutatja, hogyan változtathatja meg egy audio keret bélyegképét vagy előnézeti képét:

using (var presentation = new Presentation())
{
    var slide = presentation.Slides[0];

    // Hozzáad egy audio keretet a diához megadott pozícióval és mérettel.
    var audioStream = new FileStream("sample2.mp3", FileMode.Open, FileAccess.Read);
    var audioFrame = slide.Shapes.AddAudioFrameEmbedded(150, 100, 50, 50, audioStream);
    audioStream.Dispose();

    // Képet ad a prezentáció erőforrásaihoz.
    var imageStream = File.OpenRead("eagle.jpeg");
    var audioImage = presentation.Images.AddImage(imageStream);
    imageStream.Dispose();

    // Beállítja a képet az audio kerethez.
    audioFrame.PictureFormat.Picture.Image = audioImage; // <-----

    //Menti a módosított prezentációt a lemezre
    presentation.Save("example_out.pptx", SaveFormat.Pptx);
}

Audio lejátszási beállítások módosítása

Az Aspose.Slides for .NET lehetővé teszi, hogy módosítsa az audio lejátszását vagy tulajdonságait szabályozó beállításokat. Például beállíthatja a hangerőt, megadhatja, hogy a hang ismétlődő módon játsszon, vagy akár elrejtheti az audio ikont.

A Audio Options panel a Microsoft PowerPoint‑ban:

example1_image

A PowerPoint Audio Options ami megfelel az Aspose.Slides AudioFrame tulajdonságainak:

PowerPoint Editing opciók amelyek megfelelnek az Aspose.Slides AudioFrame tulajdonságainak:

A PowerPoint Volume control a hangvezérlő panelen a AudioFrame.VolumeValue tulajdonságnak felel meg. Lehetővé teszi a hangerő százalékos módosítását.

Így módosíthatja az Audio lejátszási beállításokat:

  1. Létrehozás vagy a Hangkeret lekérése.
  2. Állítson be új értékeket az Audio Frame azon tulajdonságaira, amelyeket módosítani kíván.
  3. Mentse el a módosított PowerPoint fájlt.

Ez a C# kód demonstrálja egy olyan műveletet, amelyben az audio beállításait módosítják:

using (Presentation pres = new Presentation("AudioFrameEmbed_out.pptx"))
{
    // Lekéri az AudioFrame alakzatot
    AudioFrame audioFrame = (AudioFrame)pres.Slides[0].Shapes[0];

    // Beállítja a lejátszási módot kattintásra
    audioFrame.PlayMode = AudioPlayModePreset.OnClick;

    // Beállítja a hangerőt alacsonyra
    audioFrame.Volume = AudioVolumeMode.Low;

    // Beállítja a hangot, hogy a diák között játsszon
    audioFrame.PlayAcrossSlides = true;

    // Letiltja a hang ismétlését
    audioFrame.PlayLoopMode = false;

    // Elrejti az AudioFrame-et a diavetítés során
    audioFrame.HideAtShowing = true;

    // Visszatekeri a hangot a lejátszás után az elejére
    audioFrame.RewindAudio = true;

    // Mentse a PowerPoint fájlt a lemezre
    pres.Save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx);
}

Ez a C# példa bemutatja, hogyan adhat hozzá új audio keretet beágyazott hanggal, hogyan vágja meg, és hogyan állítja be a fade időtartamokat:

using (Presentation pres = new Presentation())
{
    ISlide slide = pres.Slides[0];

    byte[] audioData = File.ReadAllBytes("sampleaudio.mp3");
    IAudio audio = pres.Audios.AddAudio(audioData);
    IAudioFrame audioFrame = slide.Shapes.AddAudioFrameEmbedded(50, 50, 100, 100, audio);

    // Beállítja a vágás kezdőeltolását 1,5 másodpercre
    audioFrame.TrimFromStart = 1500f;
    // Beállítja a vágás befejező eltoltását 2 másodpercre
    audioFrame.TrimFromEnd = 2000f;

    // Beállítja a fade‑in időtartamot 200 ms-re
    audioFrame.FadeInDuration = 200f;
    // Beállítja a fade‑out időtartamot 500 ms-re
    audioFrame.FadeOutDuration = 500f;

    pres.Save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
}

Az alábbi kódrészlet mutatja, hogyan kérhet le egy beágyazott hanggal rendelkező audio keretet, és állíthatja be a hangerőt 85 %-ra:

using (Presentation pres = new Presentation("AudioFrameEmbed_out.pptx"))
{
    // Lekéri az audio keret alakzatát
    IAudioFrame audioFrame = (IAudioFrame)pres.Slides[0].Shapes[0];

    // Beállítja a hangerőt 85%-ra
    audioFrame.VolumeValue = 85f;
    
    pres.Save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}

Audio feliratok kezelése

Az Aspose.Slides lehetővé teszi, hogy zárt feliratokat adjon egy audio kerethez a CaptionTracks tulajdonságon keresztül. Ez a tulajdonság egy ICaptionsCollection objektumot ad vissza, amely lehetővé teszi WebVTT feliratsávok hozzáadását, a meglévő sávok bejárását és szükség esetén azok eltávolítását.

Audio feliratok hozzáadása

Használja a CaptionTracks tulajdonságot, hogy egy vagy több feliratsávot csatoljon egy audio kerethez. Az alábbi példában egy hangfájlt adunk a diához, majd egy új feliratsávot töltünk be egy .vtt fájlból.

using (Presentation presentation = new Presentation())
{
    byte[] audioData = File.ReadAllBytes("audio.mp3");
    IAudio audio = presentation.Audios.AddAudio(audioData);

    ISlide slide = presentation.Slides[0];
    IAudioFrame audioFrame = slide.Shapes.AddAudioFrameEmbedded(10, 10, 50, 50, audio);

    // Új feliratsáv hozzáadása egy WebVTT fájlból.
    audioFrame.CaptionTracks.Add("New track", "track.vtt");

    presentation.Save("audio_with_captions.pptx", SaveFormat.Pptx);
}

Audio feliratok kinyerése

Bejárhatja az audio kerethez kapcsolódó feliratsávokat, és mentheti őket .vtt fájlokként. Minden feliratsáv kiadja a bináris adatát és egyedi azonosítóját, amely exportáláskor felhasználható.

using (Presentation presentation = new Presentation("audio_with_captions.pptx"))
{
    ISlide slide = presentation.Slides[0];
    foreach (IShape shape in slide.Shapes)
    {
        if (shape is IAudioFrame audioFrame)
        {
            foreach (ICaptions captionTrack in audioFrame.CaptionTracks)
            {
                // Mentse a feliratsávot .vtt fájlként.
                File.WriteAllBytes($"{captionTrack.CaptionId}.vtt", captionTrack.BinaryData);
            }
        }
    }
}

Audio feliratok eltávolítása

Az audio keret feliratai eltávolításához használja az ICaptionsCollection által biztosított metódusokat, például a Clear, Remove, vagy a RemoveAt metódust. Az alábbi példa minden feliratsávot eltávolít egy audio keretből.

using (Presentation presentation = new Presentation("audio_with_captions.pptx"))
{
    ISlide slide = presentation.Slides[0];
    IAudioFrame audioFrame = slide.Shapes[0] as IAudioFrame;

    // Eltávolítja az összes feliratsávot az audio keretről.
    audioFrame.CaptionTracks.Clear();

    presentation.Save("audio_without_captions.pptx", SaveFormat.Pptx);
}

Audio kinyerése

Az Aspose.Slides for .NET lehetővé teszi, hogy kinyerje a diavetítés átmeneteiben használt hangot. Például kinyerheti egy adott dia hangját.

  1. Hozzon létre egy példányt a Presentation osztályból, és töltse be a hangot tartalmazó prezentációt.
  2. Szerezze meg a megfelelő dia referenciáját az indexe alapján.
  3. Érje el a dia diavetítés‑átmeneteit.
  4. Kinyerje a hangot bájt adatként.

Ez a C# kód megmutatja, hogyan nyerheti ki egy dia által használt hangot:

string presName = "AudioSlide.pptx";

// Példányosít egy Presentation osztályt, amely egy prezentációs fájlt képvisel
Presentation pres = new Presentation(presName);

// Eléri a diát
ISlide slide = pres.Slides[0];

// Lekéri a diavetítés átmeneti effektusait a diához
ISlideShowTransition transition = slide.SlideShowTransition;

//Kinyeri a hangot bájt tömbként
byte[] audio = transition.Sound.BinaryData;

System.Console.WriteLine("Length: " + audio.Length);

GYIK

Újra felhasználhatom ugyanazt a hangfájlt több dián anélkül, hogy megnövelném a fájlméretet?

Igen. Adja hozzá a hangot egyszer a prezentáció megosztott audio collection gyűjteményéhez, és hozzon létre további audio kereteket, amelyek hivatkoznak erre a meglévő erőforrásra. Ez megakadályozza a médiaadatok duplikálását, és a prezentáció méretét kordában tartja.

Lecserélhetem egy meglévő audio keret hangját anélkül, hogy újra létrehoznám az alakzatot?

Igen. Hivatkozott hang esetén módosítsa a link path értékét, hogy az új fájlra mutasson. Beágyazott hang esetén cserélje ki a embedded audio objektumot egy másikra a prezentáció audio collection gyűjteményéből. A keret formázása és a legtöbb lejátszási beállítás változatlan marad.

A vágás módosítja a prezentációban tárolt eredeti audio adatokat?

Nem. A vágás csak a lejátszási határokat állítja be. Az eredeti audio bájtok érintetlenek maradnak, és elérhetők a beágyazott audio vagy a prezentáció audio gyűjteménye révén.