Доступ к TV Tuner Stream/Feed в WPF

Моя команда создала приложение WPF (C#), которое интегрируется с Media Center для показа видео в центре информационной панели. По сути, приложение начинает запись телеканала через Media Center, ожидает 10 секунд и начинает воспроизведение файла во время его записи. За год, прошедший с момента запуска приложения, у нас было создано около 50 заявок в службу поддержки, 45 из которых предназначены специально для интеграции и настройки Media Center.

Мы определили, что нам нужно внести серьезные изменения в реализацию и архитектуру, чтобы удалить приложение Media Center вместе и попытаться показать канал с ТВ-тюнера напрямую, как если бы вы были веб-камерой. К сожалению, никто из команды здесь не делал этого раньше, и мы не можем найти никаких ресурсов или примеров того, как это делается.

Я ищу рабочие примеры кода, которые могут взять поток с ТВ-тюнера и показать его в приложении Windows Form или WPF. Я бы даже хотел купить сторонние компоненты или программное обеспечение. Черт, я бы даже хотел заплатить кому-то, кто знает, как это сделать, просто так!

Можете ли вы указать мне в правильном направлении?

КОД ДЛЯ ВИДЕО

<MediaKit:MediaUriElement x:Name="MediaContainer" Volume="1" 
     Stretch="Uniform" HorizontalAlignment="Center" 
     UnloadedBehavior="Manual" LoadedBehavior="Play" 
     Height="820.00020739959" Width="1393.843"/>

КОД ДЛЯ ЗАПИСИ ВИДЕО

DeletePreviousRecordings();
MediaCenterControl mcc = new MediaCenterControl();
mcc.StopAllRecordings();
DateTime recordingStartTime;
DateTime endTime = DateTime.Now.Subtract(TimeSpan.FromDays(1));
int loopCount = 0;
do
{
    if (loopCount++ >= 5)
    {
        // TODO: Show error
        break;
    }
    recordingStartTime = DateTime.Now;
    RecordingEndTime = recordingStartTime.AddMinutes(RecordDuration);
}   //loop count was added below so it knew not to throw until five shots have been missed @ scheduling.
while ((endTime = mcc.RecordMedia(recordingStartTime, Settings1.Default.RecordChannel, RecordDuration, loopCount)) < DateTime.Now);
if (endTime > DateTime.Now)
    RecordingEndTime = endTime;
}

1 ответ

Это определенно можно сделать, но вам придется сузить до одного ТВ-тюнера. У меня фактически это работает, используя WinTV-HVR-1950. Это заняло у меня какое-то время, но вы должны покончить с драйверами hauppage, чтобы получить сигнал и отправить его в приложение. Мне придется поискать этот код, но я думаю, что у меня может быть ваше решение.

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