C++ का उपयोग करके प्रस्तुतियों में ऑडियो प्रबंधित करें

परिचय

यह लेख Aspose.Slides में ऑडियो फ्रेम्स के साथ काम करने के तरीकों को समझाता है। यह दिखाता है कि स्लाइड्स में एंबेडेड ऑडियो कैसे जोड़ें, ऑडियो फ्रेम थंबनेल को कैसे अनुकूलित करें, प्लेबैक विकल्प जैसे वॉल्यूम, लूपिंग, छिपाना, ट्रिमिंग और फेड अवधि को कैसे कॉन्फ़िगर करें, और स्लाइड शो ट्रांज़िशन में उपयोग किए गए ऑडियो को कैसे निकालें।

ऑडियो फ्रेम बनाना

Aspose.Slides for C++ आपको स्लाइड्स में ऑडियो फ़ाइलें जोड़ने की अनुमति देता है। ऑडियो फ़ाइलें स्लाइड्स में ऑडियो फ्रेम्स के रूप में एंबेड की जाती हैं।

  1. एक Presentation क्लास का एक इंस्टेंस बनाएं।
  2. इंडेक्स के माध्यम से स्लाइड का रेफ़रेंस प्राप्त करें।
  3. स्लाइड में एंबेड करने के लिए इच्छित ऑडियो फ़ाइल स्ट्रीम लोड करें।
  4. स्लाइड में एंबेडेड ऑडियो फ्रेम (जिसमें ऑडियो फ़ाइल है) जोड़ें।
  5. ऑब्जेक्ट IAudioFrame द्वारा उजागर किए गए PlayMode और Volume सेट करें।
  6. संशोधित प्रेजेंटेशन को सेव करें।

यह C++ कोड दिखाता है कि स्लाइड में एंबेडेड ऑडियो फ्रेम कैसे जोड़ें:

// एक Presentation क्लास का इंस्टैंस बनाता है जो प्रस्तुति फ़ाइल का प्रतिनिधित्व करती है
auto pres = System::MakeObject<Presentation>();

// पहली स्लाइड प्राप्त करता है
auto sld = pres->get_Slides()->idx_get(0);

// wav ध्वनि फ़ाइल को स्ट्रीम में लोड करता है
auto fstr = System::MakeObject<FileStream>(u"sampleaudio.wav", FileMode::Open, FileAccess::Read);

// ऑडियो फ्रेम जोड़ता है
auto audioFrame = sld->get_Shapes()->AddAudioFrameEmbedded(50.0f, 150.0f, 100.0f, 100.0f, fstr);

// ऑडियो का प्ले मोड और वॉल्यूम सेट करता है
audioFrame->set_PlayMode(AudioPlayModePreset::Auto);
audioFrame->set_Volume(AudioVolumeMode::Loud);

// PowerPoint फ़ाइल को डिस्क पर लिखता है
pres->Save(u"AudioFrameEmbed_out.pptx", SaveFormat::Pptx);

ऑडियो फ्रेम थंबनेल बदलें

जब आप प्रस्तुति में एक ऑडियो फ़ाइल जोड़ते हैं, तो ऑडियो एक फ्रेम के रूप में मानक डिफ़ॉल्ट छवि के साथ दिखाई देता है (नीचे अनुभाग में छवि देखें)। आप ऑडियो फ्रेम का थंबनेल बदल सकते हैं (अपनी पसंदीदा छवि सेट करें)।

यह C++ कोड दिखाता है कि ऑडियो फ्रेम का थंबनेल या प्रीव्यू इमेज कैसे बदलें:

auto presentation = System::MakeObject<Presentation>();
        
auto slide = presentation->get_Slides()->idx_get(0);
        
// स्लाइड में निर्दिष्ट स्थिति और आकार के साथ एक ऑडियो फ्रेम जोड़ता है.
auto audioStream = System::MakeObject<System::IO::FileStream>(u"sample2.mp3", 
    System::IO::FileMode::Open, System::IO::FileAccess::Read);
    
auto audioFrame = slide->get_Shapes()->AddAudioFrameEmbedded(150.0f, 100.0f, 50.0f, 50.0f, audioStream);
            
// प्रस्तुति संसाधनों में एक चित्र जोड़ता है.
auto imageStream = System::IO::File::OpenRead(u"eagle.jpeg");
auto audioImage = presentation->get_Images()->AddImage(imageStream);
            
// ऑडियो फ्रेम के लिए चित्र सेट करता है.
audioFrame->get_PictureFormat()->get_Picture()->set_Image(audioImage); // <-----
        
//संशोधित प्रस्तुति को डिस्क पर सहेजता है
presentation->Save(u"example_out.pptx", Aspose::Slides::Export::SaveFormat::Pptx);

ऑडियो प्ले विकल्प बदलें

Aspose.Slides for C++ आपको ऑडियो के प्लेबैक या गुणों को नियंत्रित करने वाले विकल्प बदलने की अनुमति देता है। उदाहरण के लिए, आप ऑडियो का वॉल्यूम समायोजित कर सकते हैं, ऑडियो को लूप में चलाने के लिए सेट कर सकते हैं, या यहां तक कि ऑडियो आइकन को छिपा भी सकते हैं।

The Audio Options pane in Microsoft PowerPoint:

example1_image

PowerPoint Audio Options that correspond to Aspose.Slides AudioFrame methods:

PowerPoint Editing options that correspond to Aspose.Slides AudioFrame properties:

The PowerPoint Volume कंट्रोल ऑडियो नियंत्रण पैनल पर AudioFrame.set_VolumeValue मेथड से मेल खाता है। यह आपको ऑडियो वॉल्यूम को प्रतिशत में बदलने देता है।

यहाँ बताया गया है कि आप ऑडियो प्ले विकल्प कैसे बदलते हैं:

  1. बनाएं या ऑडियो फ्रेम प्राप्त करें।
  2. आप जिन ऑडियो फ्रेम गुणों को समायोजित करना चाहते हैं, उनके लिए नए मान सेट करें।
  3. संशोधित PowerPoint फ़ाइल को सेव करें।
auto pres = System::MakeObject<Presentation>(u"AudioFrameEmbed_out.pptx");

// एक shape प्राप्त करता है
auto shape = pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0);

// shape को AudioFrame shape में कास्ट करता है
auto audioFrame = System::ExplicitCast<AudioFrame>(shape);

// प्ले मोड को क्लिक पर चलाने के लिए सेट करता है
audioFrame->set_PlayMode(AudioPlayModePreset::OnClick);

// वॉल्यूम को Low पर सेट करता है
audioFrame->set_Volume(AudioVolumeMode::Low);

// ऑडियो को स्लाइड्स के बीच प्ले करने के लिए सेट करता है
audioFrame->set_PlayAcrossSlides(true);

// ऑडियो के लिए लूप को निष्क्रिय करता है
audioFrame->set_PlayLoopMode(false);

// स्लाइड शो के दौरान AudioFrame को छिपाता है
audioFrame->set_HideAtShowing(true);

// प्ले होने के बाद ऑडियो को शुरू से रीवाइंड करता है
audioFrame->set_RewindAudio(true);

// PowerPoint फ़ाइल को डिस्क पर सहेजता है
pres->Save(u"AudioFrameEmbed_changed.pptx", SaveFormat::Pptx);
auto pres = MakeObject<Presentation>();
auto slide = pres->get_Slide(0);

auto audioData = File::ReadAllBytes(u"sampleaudio.mp3");
auto audio = pres->get_Audios()->AddAudio(audioData);
auto audioFrame = slide->get_Shapes()->AddAudioFrameEmbedded(50, 50, 100, 100, audio);

// Sets the trimming start offset to 1.5 seconds
audioFrame->set_TrimFromStart(1500);
// Sets the trimming end offset to 2 seconds
audioFrame->set_TrimFromEnd(2000);

// Sets the fade-in duration to 200 ms
audioFrame->set_FadeInDuration(200);
// Sets the fade-out duration to 500 ms
audioFrame->set_FadeOutDuration(500);

pres->Save(u"AudioFrameTrimFade_out.pptx", SaveFormat::Pptx);
pres->Dispose();
auto pres = MakeObject<Presentation>(u"AudioFrameEmbed_out.pptx");
    
// एक ऑडियो फ्रेम शेप प्राप्त करता है
auto audioFrame = ExplicitCast<IAudioFrame>(pres->get_Slide(0)->get_Shape(0));

// Sets the audio volume to 85%
audioFrame->set_VolumeValue(85);

pres->Save(u"AudioFrameValue_out.pptx", SaveFormat::Pptx);
pres->Dispose();

ऑडियो कैप्शन प्रबंधित करें

Aspose.Slides आपको get_CaptionTracks मेथड के माध्यम से एक ऑडियो फ्रेम में क्लोज़्ड कैप्शन जोड़ने की अनुमति देता है। यह मेथड एक ICaptionsCollection लौटाता है, जिससे आप WebVTT कैप्शन ट्रैक्स जोड़ सकते हैं, मौजूदा ट्रैक्स पर इटरिट कर सकते हैं, और आवश्यकता पड़ने पर उन्हें हटा सकते हैं।

Add Audio Captions

get_CaptionTracks मेथड का उपयोग करके एक या अधिक कैप्शन ट्रैक्स को ऑडियो फ्रेम से जोड़ें। नीचे के उदाहरण में, एक ऑडियो फ़ाइल स्लाइड में जोड़ी जाती है, और फिर एक नई कैप्शन ट्रैक .vtt फ़ाइल से लोड की जाती है।

auto presentation = MakeObject<Presentation>();

auto audioData = File::ReadAllBytes(u"audio.mp3");
auto audio = presentation->get_Audios()->AddAudio(audioData);

auto slide = presentation->get_Slide(0);
auto audioFrame = slide->get_Shapes()->AddAudioFrameEmbedded(10, 10, 50, 50, audio);

// Add a new caption track from a WebVTT file.
audioFrame->get_CaptionTracks()->Add(u"New track", u"track.vtt");

presentation->Save(u"audio_with_captions.pptx", SaveFormat::Pptx);
presentation->Dispose();

Extract Audio Captions

आप ऑडियो फ्रेम से जुडे़ हुए कैप्शन ट्रैक्स पर इटरिट करके उन्हें .vtt फ़ाइलों के रूप में सेव कर सकते हैं। प्रत्येक कैप्शन ट्रैक अपना बाइनरी डेटा और अनूठा पहचानकर्ता प्रदान करता है, जिसे कैप्शन निर्यात करते समय उपयोग किया जा सकता है।

auto presentation = MakeObject<Presentation>(u"audio_with_captions.pptx");
auto slide = presentation->get_Slide(0);
for (auto&& shape : slide->get_Shapes())
{
    if (ObjectExt::Is<IAudioFrame>(shape))
    {
        auto audioFrame = ExplicitCast<IAudioFrame>(shape);
        for (auto&& captionTrack : audioFrame->get_CaptionTracks())
        {
            // प्रत्येक कैप्शन ट्रैक को .vtt फ़ाइल के रूप में सहेजें.
            auto fileName = captionTrack->get_CaptionId().ToString() + u".vtt";
            File::WriteAllBytes(fileName, captionTrack->get_BinaryData());
        }
    }
}
presentation->Dispose();

Remove Audio Captions

ऑडियो फ्रेम से कैप्शन हटाने के लिए, ICaptionsCollection द्वारा प्रदान किए गए मेथड्स जैसे Clear, Remove, या RemoveAt का उपयोग करें। नीचे का उदाहरण ऑडियो फ्रेम से सभी कैप्शन ट्रैक्स को हटाता है।

auto presentation = MakeObject<Presentation>(u"audio_with_captions.pptx");
auto slide = presentation->get_Slide(0);
auto audioFrame = ExplicitCast<IAudioFrame>(slide->get_Shape(0));

// ऑडियो फ्रेम से सभी कैप्शन ट्रैक्स हटाएँ.
audioFrame->get_CaptionTracks()->Clear();

presentation->Save(u"audio_without_captions.pptx", SaveFormat::Pptx);
presentation->Dispose();

ऑडियो निकालें

Aspose.Slides आपको स्लाइड शो ट्रांज़िशन में उपयोग किए गए ध्वनि को निकालने की अनुमति देता है। उदाहरण के लिए, आप किसी विशिष्ट स्लाइड में उपयोग किए गए ध्वनि को निकाल सकते हैं।

  1. एक Presentation क्लास का इंस्टेंस बनाएं और ऑडियो वाली प्रस्तुति लोड करें।
  2. इंडेक्स के माध्यम से संबंधित स्लाइड का रेफ़रेंस प्राप्त करें।
  3. स्लाइड के स्लाइडशो ट्रांज़िशन तक पहुँचें।
  4. ध्वनि को बाइट डेटा के रूप में निकालें।
String presName = u"AudioSlide.pptx";

// एक Presentation क्लास का इंस्टैंस बनाता है जो प्रस्तुति फ़ाइल का प्रतिनिधित्व करती है
auto pres = System::MakeObject<Presentation>(presName);

// वांछित स्लाइड तक पहुँचता है
auto slide = pres->get_Slides()->idx_get(0);

// स्लाइड के लिए स्लाइडशो ट्रांज़िशन इफेक्ट्स प्राप्त करता है
auto transition = slide->get_SlideShowTransition();

// ध्वनि को बाइट एरे में निकालता है
auto audio = transition->get_Sound()->get_BinaryData();

Console::WriteLine(String(u"Length: ") + audio->get_Length());

FAQ

क्या मैं एक ही ऑडियो एसेट को कई स्लाइड्स में पुन: उपयोग कर सकता हूँ बिना फ़ाइल आकार बढ़ाए?

हाँ। ऑडियो को एक बार प्रस्तुति की साझा audio collection में जोड़ें और अतिरिक्त ऑडियो फ्रेम बनाएं जो उस मौजूदा एसेट को संदर्भित करते हैं। इससे मीडिया डेटा की डुप्लिकेशन नहीं होती और प्रस्तुति का आकार नियंत्रित रहता है।

क्या मैं मौजूदा ऑडियो फ्रेम में ध्वनि को बिना आकार (shape) को पुनः बनाए बदला सकता हूँ?

हैं। लिंक्ड साउंड के लिए, नई फ़ाइल की ओर संकेत करने के लिए link path को अपडेट करें। एंबेडेड साउंड के लिए, प्रस्तुति की audio collection से किसी अन्य ऑब्जेक्ट के साथ embedded audio ऑब्जेक्ट को बदलें। फ्रेम का फॉर्मेटिंग और अधिकांश प्लेबैक सेटिंग्स अपरिवर्तित रहती हैं।

क्या ट्रिमिंग प्रस्तुति में संग्रहीत मूल ऑडियो डेटा को बदलती है?

नहीं। ट्रिमिंग केवल प्लेबैक सीमाओं को समायोजित करती है। मूल ऑडियो बाइट्स अपरिवर्तित रहते हैं और एंबेडेड ऑडियो या प्रस्तुति की ऑडियो संग्रह के माध्यम से उपलब्ध होते हैं।