#c# #silverlight #windows-phone-7
#c# #silverlight #windows-phone-7
Вопрос:
Я создаю что-то вроде приложения для караоке, где мне нужно связать текстовые данные с отметками времени со звуковыми данными. У меня есть 2 списка для указания начала и конца временных интервалов звука и индексов текстовых строк. Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как обновить свойство highlighted text
на основе current media element's POSITION
.
У WP7 нет события достижения маркера ( которое есть у silverlight ). Итак, я рассматривал возможность использования DispatcherTimer. проблема в том, что ticks
нужные мне параметры неоднородны, и если я буду обновлять interval
свойство каждый тик, точность таймера сильно упадет, поскольку положение элемента мультимедиа и тик таймера довольно легко не будут синхронизированы.
Есть идеи, как я могу создать свое событие, подобное MarkerReached
событию элемента Media? Спасибо-Egon
Ответ №1:
Я предполагаю, что у вас есть некоторая форма структуры данных, которая сообщает вам, где находятся маркеры в аудиопотоке, так почему бы не использовать DispatcherTimer
с фиксированным интервалом (скажем, 500 миллисекунд) и просто проверить эту структуру данных, чтобы увидеть, достигли ли вы маркера?
Комментарии:
1. разрядка аккумулятора: (хотя вы правы, блокировки пользовательского интерфейса и других неприятных эффектов удается избежать.
2. Я открыт для альтернативных предложений 😉