C# - получить время от звукового проигрывателя
Есть ли какой-нибудь способ узнать количество миллисекунд, прошедших с момента начала воспроизведения звука?
Пока я пользуюсь Environment
Счетчик тиков, получая время начала, а затем текущее время каждый кадр, но иногда это неточно, а иногда действительно выключено.
В начале кода я использовал
startTime = Environment.TickCount;
а затем каждый кадр, который я использовал
long elapsed = Environment.TickCount - startTime;
Есть ли более простой способ сделать это, как HTML5 аудио player.currentTime
?
Я что-то упускаю из виду? Может кто-нибудь объяснить мне, почему мой вопрос плохой, а не просто голосование? Я просто хочу получить отзыв...
1 ответ
Нет, SoundPlayer
у класса нет возможности прочитать его текущую позицию. Это очень простой WAV-проигрыватель "запусти и забудь", который не предназначен для чего-то слишком сложного.
Если вам нужно больше контроля над воспроизведением звука, вы должны использовать что-то вроде элемента управления Windows Media Player, как описано в этой статье. В частности, есть IWMPControls::currentPosition
свойство, которое вы можете получить из медиапроигрывателя, чтобы указать, где в текущем мультимедийном проигрывателе находится проигрыватель