Ctrl+K

OggReader

اعلان

public sealed class Strawberry.Sound.OggReader

یک ISoundReader که فایل‌های صوتی OGG Vorbis را decode می‌کند، سازگار با سیستم streaming موتور Strawberry.

نکات: این خواننده از NVorbis (کاملاً managed، بدون وابستگی native) برای decode فایل‌های OGG Vorbis استفاده می‌کند. با WebAssembly و کامپایل AOT سازگار است. نیازمند بسته‌ی NuGet NVorbis: dotnet add package NVorbis

پیاده‌سازی: Strawberry.Sound.ISoundReader

سازنده‌ها

OggReader

یک OggReader از یک stream حاوی داده‌ی OGG Vorbis می‌سازد. stream هنگام dispose شدن خواننده بسته نمی‌شود.

void OggReader(Stream stream)

پارامترها:

نام نوع توضیحات
stream System.IO.Stream stream حاوی داده‌ی OGG Vorbis. باید قابل seek باشد.

ویژگی‌ها

Stream

stream اصلی فایل OGG (مرجع فقط‌خوانایی).

Stream Stream { get }

BitsPerSample

همیشه 16 (خروجی PCM ۱۶-بیتی برای سازگاری با OpenAL).

int BitsPerSample { get }

SampleRate

نرخ نمونه‌برداری خروجی به Hz (از هدر فایل OGG).

int SampleRate { get }

Channels

تعداد کانال‌های خروجی (1 = مونو، 2 = استریو).

int Channels { get }

DataSize

کل اندازه‌ی داده‌ی PCM به بایت، یا int.MaxValue برای stream های با طول نامشخص.

int DataSize { get }

متدها

Read

داده‌ی PCM decode‌شده را در بافر می‌خواند. داده‌ی OGG Vorbis به‌درخواست decode شده و از float به PCM ۱۶-بیتی تبدیل می‌شود.

int Read(byte[] buffer, int offset, int count)

پارامترها:

نام نوع توضیحات
buffer System.Byte[]
offset System.Int32
count System.Int32

خروجی: تعداد بایت‌های نوشته‌شده در بافر، یا 0 اگر در انتهای داده باشد.

Seek

به یک انحراف بایتی در داده‌ی PCM decode‌شده seek می‌کند. انحراف بایتی به موقعیت فریم نمونه تبدیل می‌شود.

void Seek(long offset)

پارامترها:

نام نوع توضیحات
offset System.Int64

ReadAll

کل فایل OGG را به‌عنوان داده‌ی PCM decode‌شده می‌خواند. ابتدا خواننده را به ابتدا بازنشانی می‌کند، سپس همه‌ی صدا را decode می‌کند.

byte[] ReadAll()

Dispose

void Dispose()