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

صدا/ایف audio/aiff

خواندن و نوشتن پرونده‌های ایف و ایف‌سی.

واردسازی audio.aiff

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

تنها بخش به‌راستی عجیب نرخ نمونه است، که ایف آن را به شکل اعشار گسترده هشتاد بیتی نگه می‌دارد. این بسته آن را می‌خواند و می‌نویسد، پس ۴۴۱۰۰ همان ۴۴۱۰۰ باز می‌گردد و نه ۴۴۰۹۹.

دانستنی‌ها

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

گونه‌ها

مشترک Common

ساختار مشترک
آنچه تکه COMM یک ایف می‌گوید، به همراه جای نمونه‌ها.
نامانگلیسیگونهتوضیح
کانال هاchannelsصحیح = 0چند کانال.
فریم هاframesصحیح = 0سرآیند چند فریم را ادعا می‌کند.
بیت هاbitsصحیح = 0بیت برای هر نمونه.
نرخrateصحیح = 0فریم در هر ثانیه، خوانده از اعشار هشتاد بیتی که ایف آن را در آن نگه می‌دارد.
روش فشردهcompressionصحیح = 0پرونده کدام شماره فشرده‌سازی را به کار می‌برد. ایف ساده همیشه فشرده هیچ است.
جای دادهdata_offsetصحیح = 0نمونه‌ها از کجا آغاز می‌شوند، پس از سرآیند SSND و میدان جابجایی‌اش.
اندازه دادهdata_sizeصحیح = 0چند بایت نمونه هست.
aiff-Read.salam
واردسازی صدا
واردسازی صدا.ایف
واردسازی فشرده سازی
واردسازی مسیر پرونده
واردسازی حافظه
واردسازی سیستم عامل

تابع ریشه:
    ناپایا کلیپ := صدا.جدید(44100، 2، 64)
    صدا.تنظیم نمونه(کلیپ، 7، 1، 0.5)
    بافه := ایف.کدگذاری ایف با بیت(کلیپ، 24)
    سرچاپ ایف.ایف است(بافه.data، بافه.len)، ایف.ایف است(بافه.data، 4)
    سرچاپ صدا.نام قالب(صدا.شناسایی قالب(بافه.data، بافه.len))

    ناپایا مش := ایف.مشترک {}
    سرچاپ ایف.خواندن مشترک(بافه.data، بافه.len، مش)
    سرچاپ مش.کانال ها، مش.فریم ها، مش.بیت ها، مش.نرخ
    سرچاپ مش.روش فشرده برابر ایف.فشرده هیچ، مش.اندازه داده

    ناپایا درستی := نادرست
    آگاه := ایف.بررسی ایف(بافه.data، بافه.len، درستی)
    سرچاپ درستی، آگاه.نرخ، آگاه.کانال ها، آگاه.بیت ها، آگاه.فریم ها، آگاه.بی اتلاف

    ناپایا درستی۲ := نادرست
    برگشته := ایف.کدگشایی ایف(بافه.data، بافه.len، درستی۲)
    سرچاپ درستی۲، برگشته.فریم ها، برگشته.بیت ها، صدا.نمونه(برگشته، 7، 1)

    هر نرخی در [8000، 22050، 44100، 96000]:
        ناپایا یکی := صدا.جدید(نرخی، 1، 2)
        بررسی۲ := ایف.کدگذاری ایف با بیت(یکی، 16)
        ناپایا مش۲ := ایف.مشترک {}
        ایف.خواندن مشترک(بررسی۲.data، بررسی۲.len، مش۲)
        سرچاپ نرخی، مش۲.نرخ برابر نرخی
        فشرده سازی.آزادسازی بافر(بررسی۲)
        صدا.آزادسازی(یکی)
    پایان

    سرچاپ فشرده سازی.طول بافر(ایف.کدگذاری ایف با بیت(کلیپ، 12))، فشرده سازی.طول بافر(ایف.کدگذاری ایف(صدا.قطعه {}))

    نشانی := مسیر پرونده.پیوند(سیستم عامل.پوشه موقت()، "salam_aiff_example.aiff")
    دیرکن حافظه.آزادسازی(نشانی برگردان تهی*)
    سرچاپ ایف.ذخیره ایف با بیت(کلیپ، نشانی، 16)
    ناپایا درستی۳ := نادرست
    دیسکی := ایف.بازکردن ایف(نشانی، درستی۳)
    سرچاپ درستی۳، دیسکی.بیت ها، دیسکی.فریم ها
    ناپایا رفته := نادرست
    نبود := مسیر پرونده.پیوند(سیستم عامل.پوشه موقت()، "salam_aiff_none.aiff")
    دیرکن حافظه.آزادسازی(نبود برگردان تهی*)
    ایف.بازکردن ایف(نبود، رفته)
    سرچاپ رفته

    فشرده سازی.آزادسازی بافر(بافه)
    صدا.آزادسازی(کلیپ)
    صدا.آزادسازی(برگشته)
    صدا.آزادسازی(دیسکی)
پایان
خروجیtrue false aiff true 2 64 24 44100 true 384 true 44100 2 24 64 true true 64 24 0.5 8000 true 22050 true 44100 true 96000 true 0 0 true true 16 64 false

پایاها و متغیرها

شماره‌های فشرده‌سازی Comp…

پرونده ایف‌سی کدام فشرده‌سازی را اعلام می‌کند. ایف ساده همیشه فشرده هیچ است.
نامانگلیسیمقدار
فشرده هیچCompNone0
فشرده کوچک‌انتهاCompSowt1
فشرده اعشار۳۲CompFloat322
فشرده اعشار۶۴CompFloat643
فشرده ای‌لاCompALaw4
فشرده میولاCompMuLaw5

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

تابع‌ها

ایف است IsAIFF

تابع ایف است(p: تهی*، n: صحیح): منطقی
درست وقتی این بایت‌ها با سرآیند FORM آغاز شوند که ایف یا ایف‌سی را نام می‌برد.

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

خواندن مشترک ReadCommon

تابع خواندن مشترک(p: تهی*، n: صحیح، out &: مشترک): منطقی
تکه‌های COMM و SSND را با هم می‌خواند، پس یک فراخوانی شکل و جای صدا را به شما می‌دهد.

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

بررسی ایف ProbeAIFF

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

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

کدگشایی ایف DecodeAIFF

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

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

کدگذاری ایف با بیت EncodeAIFFBits

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

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

کدگذاری ایف EncodeAIFF

تابع کدگذاری ایف(c: audio.Clip): compress.ByteBuf
قطعه را به شکل ایف با عمقی که قطعه به یاد دارد کدگذاری می‌کند، یا شانزده بیت وقتی ندارد.

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

بازکردن ایف OpenAIFF

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

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

ذخیره ایف SaveAIFF

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

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

ذخیره ایف با بیت SaveAIFFBits

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

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