I would look into the c-documentation for libogg and figure out how to do this with c. And then write almost the same code in C # using a wrapper over libogg.
I created a low-level wrapper over libogg and libvorbis using the interop helper:
https://github.com/CodesInChaos/Xiph/blob/master/LowLevel.cs
, , , .
, , , , .
, API , . , granulepos .
StreamID - , ogg. , , , .
, granulepos - , , , vorbis. , .