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()