Silverlight MediaElement Положение Свойство Странность - PullRequest
3 голосов
/ 18 июня 2010

У меня есть MediaElement, который сообщает о своей позиции неправильно и странно, но последовательно.Кажется, что когда он достигает последней секунды звука (и это всегда последняя секунда, независимо от того, равен ли звук двум секундам или 10), он не обновляет свою позицию, пока не закончится.


Пример вывода:

Ход воспроизведения: 0 / 3,99 - 0 Воспроизведение

Ход: 0,01 / 3,99 - 0 Воспроизведение

Ход: 0,03 / 3,99 - 0Воспроизведение

Прогресс: 0,06 / 3,99 - 1 Воспроизведение

Прогресс: 0,07 / 3,99 - 1 Воспроизведение

Прогресс: 0,08 / 3,99 - 2 Воспроизведение

Прогресс: 0,11 / 3,99 - 2 воспроизведения

Прогресс: 0,14 / 3,99 - 3 воспроизведения

Прогресс: 0,19 / 3,99 - 4 воспроизведения

Прогресс: 0,23 / 3,99 - 5 воспроизведения

Прогресс: 0,25 / 3,99 - 6 Воспроизведение

Прогресс: 0,28 / 3,99 - 7 Воспроизведение

Прогресс: 0,3 / 3,99 - 7 Воспроизведение

[SNIP]

Процесс воспроизведения: 2,8 / 3,99 - 70

Процесс воспроизведения: 2,83 / 3,99 - 70

Процесс воспроизведения: 2,88 / 3,99 - 72

ВоспроизведениеХод воспроизведения: 2,9 / 3,99 - 72

Ход воспроизведения: 2,91 / 3,99 - 72

Ход воспроизведения: 2,92 / 3,99 - 73

Ход воспроизведения: 2,99 / 3,99 - 74

Ход воспроизведения: 3 / 3,99 - 75

Ход воспроизведения: 3 / 3,99 - 75

Ход воспроизведения: 3 / 3,99 - 75

Ход воспроизведения:3 / 3,99 - 75

Ход воспроизведения: 3 / 3,99 - 75

Ход воспроизведения: 3 / 3,99 - 75

Ход воспроизведения: 3 / 3,99 - 75

Ход воспроизведения: 3 / 3,99 - 75

Ход воспроизведения: 3 / 3,99 - 75

Ход воспроизведения: 3,99 / 3,99 - 100


Это результат:

    WriteLine("Playback Progress: " + Position + "/" + LengthInSeconds + " - " + (int)((Position / LengthInSeconds) * 100));

    public double Position
    {
        get
        {
            return my_media_element != null ? my_media_element.Position.TotalSeconds : 0;
        }
    }

    public double LengthInSeconds
    {
        get
        {
            return my_media_element != null ? my_media_element.NaturalDuration.TimeSpan.TotalSeconds : 0;
        }
    }

У кого-нибудь есть идеи, почему это происходит?

1 Ответ

2 голосов
/ 18 июня 2010

Свойство Position в Silverlight имеет эффект «зажима», который может вызвать это, чтобы не пытаться произносить последние 1 с содержимого.

К сожалению, AFAIK не так легко исправить.

...