"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > حساب مدة صوت Ogg في Go: دليل خطوة بخطوة

حساب مدة صوت Ogg في Go: دليل خطوة بخطوة

تم النشر بتاريخ 2024-11-01
تصفح:820

Calculating Ogg Audio Duration in Go: A Step-by-Step Guide

كنت أحاول استنساخ Discord واكتشفت أنهم يستخدمون تنسيقات ogg للصوت (على ما أعتقد)، أحاول الحصول على مدة الصوت لتخزينها في قاعدة البيانات.

لقد وجدت حلاً رائعًا للحصول على مدة صوت OGG. يتضمن الأسلوب البحث عن نهاية الملف، والعثور على آخر رأس صفحة Ogg، وقراءة موضعه الحبيبي.

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 



قررت مشاركته هنا، لقد وجدت التنفيذ رائعًا جدًا وربما أساعد بعض الأشخاص الآخرين

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/mmvergara/calculating-ogg-audio-duration-in-go-a-step-by-step-guide-1igh?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang @163.com حذف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3