صدا/کدک audio/codec
باز کردن و ذخیره پرونده صدا بی آنکه قالبش را نام ببرید.
واردسازی audio.codec
این بسته همان یک فراخوانی است که برایش مهم نیست پرونده در چه قالبی است. بازکردن بایتهای آغازین را میخواند، قالب را درمیآورد و یک قطعه پس میدهد؛ ذخیره به پسوند نگاه میکند و چیز درست را مینویسد. بررسی و بررسی پرونده همین کار را برای سرآیند تنها میکنند.
به دلیلی ساده در بسته خودش نشسته است: صدا نمیتواند بستههای قالب را واردسازی کند، چون آنها خودش را واردسازی میکنند. پس شناسایی در صدا میماند که به چیزی نیاز ندارد، و توزیع اینجا میماند که میتواند به هر کدک برسد.
دانستنیها
- شناختن یک قالب و توانستن خواندنش دو چیزند.
شناسایی قالبدر صدا ده قالب را نام میبرد؛کدگشایی شدنیمیگوید این ساخت کدامشان را به راستی با خود دارد، وقالبهاآنها را فهرست میکند. - امروز آن فهرست ویو و ایف و اییو است. بقیه خانواده در نوشته شدن است و وقتی برسند هیچ چیز اینجا عوض نمیشود.
ذخیرهبرای پسوندی که نمیتواند بنویسد نادرست برمیگرداند، جای آنکه قالب نادرستی بنویسد.- قطعه را با
صدا.آزادسازیو هر بافری را بافشرده سازی.آزادسازی بافرآزاد کنید.
تابعها
کدگشایی شدنی CanDecode
تابع کدگشایی شدنی(format: صحیح): منطقیواردسازی صدا
واردسازی صدا.کدک
واردسازی فشرده سازی
واردسازی مسیر پرونده
واردسازی حافظه
واردسازی سیستم عامل
تابع ریشه:
سرچاپ کدک.کدگشایی شدنی(صدا.قالب ویو)، کدک.کدگذاری شدنی(صدا.قالب ویو)
سرچاپ کدک.کدگشایی شدنی(صدا.قالب امپیتری)، کدک.کدگذاری شدنی(صدا.قالب فلاک)
سرچاپ کدک.قالبها().طول()، کدک.قالبها().بگیر(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")
دیرکن حافظه.آزادسازی(نبود برگردان تهی*)
کدک.بازکردن(نبود، رفته)
سرچاپ رفته
فشرده سازی.آزادسازی بافر(بافه)
فشرده سازی.آزادسازی بافر(آشغال)
صدا.آزادسازی(کلیپ)
صدا.آزادسازی(برگشته)
صدا.آزادسازی(حافظه۱)
پایانکدگذاری شدنی 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