C# - получить время от звукового проигрывателя

Есть ли какой-нибудь способ узнать количество миллисекунд, прошедших с момента начала воспроизведения звука?

Пока я пользуюсь EnvironmentСчетчик тиков, получая время начала, а затем текущее время каждый кадр, но иногда это неточно, а иногда действительно выключено.

В начале кода я использовал

startTime = Environment.TickCount;

а затем каждый кадр, который я использовал

long elapsed = Environment.TickCount - startTime;

Есть ли более простой способ сделать это, как HTML5 аудио player.currentTime?

Я что-то упускаю из виду? Может кто-нибудь объяснить мне, почему мой вопрос плохой, а не просто голосование? Я просто хочу получить отзыв...

1 ответ

Нет, SoundPlayer у класса нет возможности прочитать его текущую позицию. Это очень простой WAV-проигрыватель "запусти и забудь", который не предназначен для чего-то слишком сложного.

Если вам нужно больше контроля над воспроизведением звука, вы должны использовать что-то вроде элемента управления Windows Media Player, как описано в этой статье. В частности, есть IWMPControls::currentPosition свойство, которое вы можете получить из медиапроигрывателя, чтобы указать, где в текущем мультимедийном проигрывателе находится проигрыватель

Другие вопросы по тегам