2009-09-20 2 views
3

Я хотел бы запросить руководство по программе Media Center Windows 7 из приложения C#. например чтобы ответить на такие вопросы, как «В какое время Inbetweeners следующий показ на канале 4?».Есть ли API .Net для запроса руководства по программе Media Center Windows 7?

Я просмотрел SDK Media Center (v6 и v5), но это говорит о том, что можно использовать классы Microsoft.MediaCenter.TV.Scheduling для запроса записей («Click-to-record»). Я не могу найти способ просто запросить и вернуть список показаний, не прося Media Center что-то записать.

Немного веб-поиска предлагает мне открыть SQLite db, который Media Center использует за кулисами (ProgramData \ Microsoft \ eHome \ EPG \ epg.sdf) и запросить это. Я мог бы это сделать, но мне кажется, что немного чутко получить доступ к данным Media Center.

Итак, я что-то упустил в API .Net? Есть ли способ запросить расписание, не отставая от Media Center?

ответ

3

TVSchedule class, по-видимому, является самым близким документированным (хотя и устаревшим) способом для этого. Lineup class работает только для поиска каналов.

Я также видел поток, который вы упомянули об использовании базы данных SqlLite (по адресу http://discuss.mediacentersandbox.com/forums/thread/559.aspx), но если ваш выбор использует устаревший API и доступ к недокументированной базе данных, я бы предложил первый. ;-) Тем более, что я подозреваю, что формат базы данных уже изменился (или будет изменяться в Win 8).

Кроме того, зарегистрируйтесь http://mobilewares.spaces.live.com/blog/cns!78533A1A2E078194!4535.entry, который является сообщением Niall Gainsbourg, в котором сообщается о последнем SDK, не имеющем поддержки EPG. Так что вы не единственный, кто ищет это.

Возможно, вы захотите попробовать, используя Niall напрямую, возможно, он захочет опубликовать то, что он знает о доступе к EPG здесь ... учитывая, что у него есть продукт, связанный с EPG, я думаю, он знал бы, что он говорит. :-)

+0

Спасибо, TVSchedule выглядит так, как мне нужно, но устарел, и я стараюсь не быть озорным. MSDN рекомендует использовать класс ScheduleEvent вместо этого, но я не вижу, как использовать это для простого запроса. Класс Lineup, по-видимому, предназначен только для разрешения имен каналов. – RobotEdward

+0

Да. API сильно ограничен. Я обновил свой ответ с дополнительной информацией. См. Выше. –

+0

Таким образом, чтобы подвести итог, это выглядит как опции в текущей Windows 7 Media Center SDK являются: 1. Используйте осуждается TVSchedule класс 2. Опросить БД SQLite непосредственно 3. Откажитесь :) Спасибо за следующее вверх. – RobotEdward