मैं कलह का क्लोन बनाने की कोशिश कर रहा था और मुझे पता चला कि वे ऑडियो के लिए ओजीजी प्रारूपों का उपयोग करते हैं (मुझे लगता है), मैं डेटाबेस में संग्रहीत करने के लिए ऑडियो अवधि प्राप्त करने की कोशिश कर रहा हूं।
ओजीजी ऑडियो अवधि प्राप्त करने के बारे में एक स्टैकओवरफ़्लो समाधान, मुझे आकर्षक लगा। इस दृष्टिकोण में फ़ाइल के अंत की तलाश करना, अंतिम ओग पेज हेडर ढूंढना और उसकी ग्रेन्युल स्थिति को पढ़ना शामिल है।
func getOggDurationMs(reader io.Reader) (int64, error) { // Read the entire Ogg file into a byte slice data, err := io.ReadAll(reader) if err != nil { return 0, fmt.Errorf("error reading Ogg file: %w", err) } // Search for the "OggS" signature and calculate the length var length int64 for i := len(data) - 14; i >= 0 && length == 0; i-- { if data[i] == 'O' && data[i 1] == 'g' && data[i 2] == 'g' && data[i 3] == 'S' { length = int64(readLittleEndianInt(data[i 6 : i 14])) } } // Search for the "vorbis" signature and calculate the rate var rate int64 for i := 0; iमैंने इसे यहां साझा करने का निर्णय लिया, मुझे कार्यान्वयन बहुत अच्छा लगा और शायद इससे कुछ अन्य लोगों को मदद मिलेगी
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3