کتابخانه‌ی استاندارد · کدگذاری و داده

صدا/کدک audio/codec

باز کردن و ذخیره پرونده صدا بی آنکه قالبش را نام ببرید.

واردسازی audio.codec
در این صفحه
  1. تابع‌ها

این بسته همان یک فراخوانی است که برایش مهم نیست پرونده در چه قالبی است. بازکردن بایت‌های آغازین را می‌خواند، قالب را درمی‌آورد و یک قطعه پس می‌دهد؛ ذخیره به پسوند نگاه می‌کند و چیز درست را می‌نویسد. بررسی و بررسی پرونده همین کار را برای سرآیند تنها می‌کنند.

به دلیلی ساده در بسته خودش نشسته است: صدا نمی‌تواند بسته‌های قالب را واردسازی کند، چون آنها خودش را واردسازی می‌کنند. پس شناسایی در صدا می‌ماند که به چیزی نیاز ندارد، و توزیع اینجا می‌ماند که می‌تواند به هر کدک برسد.

دانستنی‌ها

  • شناختن یک قالب و توانستن خواندنش دو چیزند. شناسایی قالب در صدا ده قالب را نام می‌برد؛ کدگشایی شدنی می‌گوید این ساخت کدامشان را به راستی با خود دارد، و قالب‌ها آنها را فهرست می‌کند.
  • امروز آن فهرست ویو و ایف و ای‌یو است. بقیه خانواده در نوشته شدن است و وقتی برسند هیچ چیز اینجا عوض نمی‌شود.
  • ذخیره برای پسوندی که نمی‌تواند بنویسد نادرست برمی‌گرداند، جای آنکه قالب نادرستی بنویسد.
  • قطعه را با صدا.آزادسازی و هر بافری را با فشرده سازی.آزادسازی بافر آزاد کنید.

تابع‌ها

کدگشایی شدنی CanDecode

تابع کدگشایی شدنی(format: صحیح): منطقی
درست وقتی این ساخت می‌تواند آن قالب را بخواند. امروز ویو و ایف و ای‌یو چنین‌اند؛ دیگران در راهند.
codec-Open.salam
واردسازی صدا
واردسازی صدا.کدک
واردسازی فشرده سازی
واردسازی مسیر پرونده
واردسازی حافظه
واردسازی سیستم عامل

تابع ریشه:
    سرچاپ کدک.کدگشایی شدنی(صدا.قالب ویو)، کدک.کدگذاری شدنی(صدا.قالب ویو)
    سرچاپ کدک.کدگشایی شدنی(صدا.قالب ام‌پی‌تری)، کدک.کدگذاری شدنی(صدا.قالب فلاک)
    سرچاپ کدک.قالب‌ها().طول()، کدک.قالب‌ها().بگیر(0) برابر صدا.قالب ویو

    ناپایا کلیپ := صدا.جدید(22050، 2، 64)
    صدا.تنظیم نمونه(کلیپ، 5، 0، 0.5)
    صدا.تنظیم نمونه(کلیپ، 5، 1، -0.25)

    نشانی := مسیر پرونده.پیوند(سیستم عامل.پوشه موقت()، "salam_codec_open.wav")
    دیرکن حافظه.آزادسازی(نشانی برگردان تهی*)
    سرچاپ کدک.ذخیره(کلیپ، نشانی)
    ناپایا درستی := نادرست
    برگشته := کدک.بازکردن(نشانی، درستی)
    سرچاپ درستی، برگشته.فریم ها، برگشته.کانال ها، برگشته.نرخ، برگشته.بیت ها
    سرچاپ صدا.نمونه(برگشته، 5، 0)، صدا.نمونه(برگشته، 5، 1)

    ناپایا درستی۲ := نادرست
    آگاه := کدک.بررسی پرونده(نشانی، درستی۲)
    سرچاپ درستی۲، صدا.نام قالب(آگاه.قالب)، آگاه.فریم ها، آگاه.بیت ها، آگاه.بی اتلاف

    بافه := کدک.کدگذاری(کلیپ، صدا.قالب ویو)
    سرچاپ فشرده سازی.طول بافر(بافه) برابر 44 + 64 * 2 * 2
    ناپایا درستی۳ := نادرست
    حافظه۱ := کدک.کدگشایی(بافه.data، بافه.len، درستی۳)
    سرچاپ درستی۳، حافظه۱.فریم ها
    ناپایا درستی۴ := نادرست
    حافظه۲ := کدک.بررسی(بافه.data، بافه.len، درستی۴)
    سرچاپ درستی۴، حافظه۲.کانال ها

    امپیتری := مسیر پرونده.پیوند(سیستم عامل.پوشه موقت()، "salam_codec_open.mp3")
    دیرکن حافظه.آزادسازی(امپیتری برگردان تهی*)
    سرچاپ کدک.ذخیره(کلیپ، امپیتری)
    سرچاپ فشرده سازی.طول بافر(کدک.کدگذاری(کلیپ، صدا.قالب ام‌پی‌تری))
    ناپایا خراب := نادرست
    ناپایا آشغال := فشرده سازی.بافر بایت جدید()
    ناپایا شمارنده := 0
    تا شمارنده کوچکتر 16:
        فشرده سازی.افزودن بایت(آشغال، شمارنده)
        شمارنده += 1
    پایان
    کدک.کدگشایی(آشغال.data، آشغال.len، خراب)
    سرچاپ خراب
    ناپایا رفته := نادرست
    نبود := مسیر پرونده.پیوند(سیستم عامل.پوشه موقت()، "salam_codec_nope.wav")
    دیرکن حافظه.آزادسازی(نبود برگردان تهی*)
    کدک.بازکردن(نبود، رفته)
    سرچاپ رفته
    فشرده سازی.آزادسازی بافر(بافه)
    فشرده سازی.آزادسازی بافر(آشغال)
    صدا.آزادسازی(کلیپ)
    صدا.آزادسازی(برگشته)
    صدا.آزادسازی(حافظه۱)
پایان
خروجیtrue true false true 4 true true true 64 2 22050 16 0.5 -0.25 true wav 64 16 true true true 64 true 2 false 0 false false

کدگذاری شدنی CanEncode

تابع کدگذاری شدنی(format: صحیح): منطقی
درست وقتی این ساخت می‌تواند آن قالب را بنویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: codec-Open.salam

قالب‌ها Formats

تابع قالب‌ها(): وکتور<صحیح>
هر قالبی که این بسته می‌تواند با آن کار کند، به شکل وکتوری از شماره‌های قالب.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: codec-Open.salam

کدگشایی Decode

تابع کدگشایی(p: تهی*، n: صحیح، ok &: منطقی): audio.Clip
قالب را از بایت‌ها درمی‌آورد و آنها را به قطعه کدگشایی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: codec-Open.salam

بررسی Probe

تابع بررسی(p: تهی*، n: صحیح، ok &: منطقی): audio.Info
قالب را از بایت‌ها درمی‌آورد و سرآیندش را می‌خواند، بی کدگشایی صدا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: codec-Open.salam

بازکردن Open

تابع بازکردن(path: رشته، ok &: منطقی): audio.Clip
پرونده‌ای از هر قالبی که این ساخت می‌شناسد را به قطعه می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: codec-Open.salam

بررسی پرونده ProbeFile

تابع بررسی پرونده(path: رشته، ok &: منطقی): audio.Info
تنها سرآیند پرونده‌ای از هر قالبی را می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: codec-Open.salam

کدگذاری Encode

تابع کدگذاری(c: audio.Clip، format: صحیح): compress.ByteBuf
قطعه را در قالبی که نام می‌برید کدگذاری می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: codec-Open.salam

ذخیره Save

تابع ذخیره(c: audio.Clip، path: رشته): منطقی
قطعه را در پرونده می‌نویسد و قالب را از پسوند برمی‌گزیند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: codec-Open.salam