Форум Beholder http://beholder.ru/bb/ | |
API для USB моделей http://beholder.ru/bb/viewtopic.php?f=10&t=8556 |
Страница 1 из 1 |
Автор: | Ozab [ 29 окт 2009, 16:06 ] |
Заголовок сообщения: | API для USB моделей |
Существует ли API для Wander, Voyager? |
Автор: | Admin [ 30 окт 2009, 10:48 ] |
Заголовок сообщения: | |
Какое API вы имеете ввиду? Все имеющиеся у нас API абсолютно одинаковы для всех наших тюнеров. |
Автор: | Ozab [ 30 окт 2009, 11:12 ] |
Заголовок сообщения: | |
Извините, стормозил. Могу ли я управлять тюнером из своего приложения, не запуская BeholdTV? |
Автор: | ALF [ 30 окт 2009, 11:43 ] |
Заголовок сообщения: | |
писал(а): Могу ли я управлять тюнером из своего приложения, не запуская BeholdTV?
Можете. Вот тот API, который вам нужен: http://msdn.microsoft.com/en-us/library/dd375454(VS.85).aspx |
Автор: | Ozab [ 30 окт 2009, 14:10 ] |
Заголовок сообщения: | |
Спасибо, а FM радио? |
Автор: | ALF [ 30 окт 2009, 16:35 ] |
Заголовок сообщения: | |
То же самое. |
Автор: | Ozab [ 30 окт 2009, 16:52 ] |
Заголовок сообщения: | |
Большое спасибо, буду рыть. |
Автор: | Ozab [ 14 июн 2010, 12:29 ] |
Заголовок сообщения: | |
писал(а): Вот тот API, который вам нужен: http://msdn.microsoft.com/en-us/library/dd375454(VS.85).aspx
У меня уже легкое головокружение от DirectShow ![]() Можно где-нибудь увидеть пример автоматического поиска FM радиостанции в определенном диапазоне частот, с остановкой при определении несущей? |
Автор: | hd44780 [ 15 июн 2010, 10:55 ] |
Заголовок сообщения: | |
писал(а): У меня уже легкое головокружение от DirectShow ![]() Привыкай ![]() писал(а): Можно где-нибудь увидеть пример автоматического поиска FM радиостанции в определенном диапазоне частот, с остановкой при определении несущей?
Где-то валялось... Какой-то добрый человек поделился. На моем стареньком Aver 203 работало. Правда я искал TV каналы. с FM не игрался. На более новых тюнерах не пробовал - закинул это дело. Если надо, пороюсь в своих архивах. |
Автор: | Ozab [ 15 июн 2010, 16:10 ] |
Заголовок сообщения: | |
С телевизором всё просто - там если развертка есть, то и канал есть. А с FM что-то не въеду никак насчет автопоиска. Мож суппорт что подскажет? ![]() Может-как-нибудь через dll или ioctl можно? |
Автор: | Ozab [ 23 июн 2010, 16:23 ] |
Заголовок сообщения: | |
И всё-таки, что не так? pTVTuner->QueryInterface(IID_IKsPropertySet, (void**)&pKs); pKs->Get(PROPSETID_TUNER, KSPROPERTY_TUNER_FREQUENCY, INSTANCEDATA_OF_PROPERTY_PTR(&Frequency), INSTANCEDATA_OF_PROPERTY_SIZE(Frequency), &Frequency, sizeof(Frequency), &Returned); Frequency.Frequency= сколько надо; pKs->Set(PROPSETID_TUNER, KSPROPERTY_TUNER_FREQUENCY, INSTANCEDATA_OF_PROPERTY_PTR(&Frequency), INSTANCEDATA_OF_PROPERTY_SIZE(Frequency), &Frequency, sizeof(Frequency)); Частота устанавливается, музыку слышно. pKs->Get(PROPSETID_TUNER,KSPROPERTY_TUNER_MODE_CAPS, INSTANCEDATA_OF_PROPERTY_PTR(&ModeCaps), INSTANCEDATA_OF_PROPERTY_SIZE(ModeCaps), &ModeCaps, sizeof(ModeCaps), &cbBytes); Возвращает KS_TUNER_STRATEGY_PLL pKs->Get(PROPSETID_TUNER,KSPROPERTY_TUNER_STATUS, INSTANCEDATA_OF_PROPERTY_PTR(&Status), INSTANCEDATA_OF_PROPERTY_SIZE(Status), &Status, sizeof(Status), &cbBytes); Status.CurrentFrequency возвращает правильную частоту, но Status.PLLOffset возвращает 0 ВСЕГДА Status.SignalStrength возвращает 0 ВСЕГДА Status.Busy возвращает 0 ВСЕГДА pTVTuner->SignalPresent(&ss) возвращает 0 ВСЕГДА Как всё-таки определить наличие сигнала FM ??? |
Автор: | Support [ 24 июн 2010, 12:21 ] |
Заголовок сообщения: | |
Для USB тюнеров настройка FM выглядит так: Код: //////////////////////////////////////////////////////////////////////////////
// {E73F292A-5AF3-47c7-BB55-2C474B992296} static const GUID KSPROPSETID_ANALOG_TUNER_API = { 0xe73f292a, 0x5af3, 0x47c7, { 0xbb, 0x55, 0x2c, 0x47, 0x4b, 0x99, 0x22, 0x96 } }; ////////////////////////////////////////////////////////////////////////////// typedef enum { // ......... KSPROPERTY_ID_TUNER_SCAN_MODE = 6, // ......... } KSPROPERTY_ADVANCED_TUNER_ID; ////////////////////////////////////////////////////////////////////////////// m_pVidCapture->QueryInterface( IID_IKsPropertySet, (void**) &m_pKsPropertySet ); // m_pVidCapture - pointer to IBaseFilter interface of analog video capture device ////////////////////////////////////////////////////////////////////////////// HRESULT put_AnlgTunerAdvanced( LONG lId, LONG lValue ) { if ( !m_pKsPropertySet ) { return E_POINTER; } HRESULT hr = m_pKsPropertySet->Set( KSPROPSETID_ANALOG_TUNER_API, (DWORD)lId, NULL, 0, &lValue, sizeof( lValue ) ); return hr; } ////////////////////////////////////////////////////////////////////////////// // Call before scan put_AnlgTunerAdvanced(KSPROPERTY_ID_TUNER_SCAN_MODE, 1); // Scan via DirectShow // ........ // Call after scan put_AnlgTunerAdvanced(KSPROPERTY_ID_TUNER_SCAN_MODE, 0); При включенном режиме сканирования на частоте радиостанции тюнер вернёт: Status.SignalStrength: 100 |
Автор: | Ozab [ 24 июн 2010, 16:04 ] |
Заголовок сообщения: | |
БОЛЬШОЕ спасибо за раскрытие фирменного секрета, всё работает отлично! pBaseFilter->QueryInterface(IID_IKsPropertySet, (void**) &pKsBase); val=1; pKsBase->Set(KSPROPSETID_ANALOG_TUNER_API, KSPROPERTY_ID_TUNER_SCAN_MODE, NULL, 0, &val, sizeof(val)); Звук пропал. pTVTuner->QueryInterface(IID_IKsPropertySet, (void**)&pKsTuner); Выставляю частоту 3-мя разными методами. Первый: memset(&Frequency,0,sizeof(KSPROPERTY_TUNER_FREQUENCY_S)); Frequency.Frequency=Freq; Frequency.TuningFlags=KS_TUNER_TUNING_EXACT; pKsTuner->Set(PROPSETID_TUNER, KSPROPERTY_TUNER_FREQUENCY, INSTANCEDATA_OF_PROPERTY_PTR(&Frequency), INSTANCEDATA_OF_PROPERTY_SIZE(Frequency), &Frequency, sizeof(Frequency)); Второй: pTVTuner->AutoTune(Freq, &FoundSignal); Третий: pTVTuner->put_Channel(Freq, AMTUNER_SUBCHAN_DEFAULT,AMTUNER_SUBCHAN_DEFAULT); pKsTuner->Get(PROPSETID_TUNER,KSPROPERTY_TUNER_STATUS, INSTANCEDATA_OF_PROPERTY_PTR(&Status), INSTANCEDATA_OF_PROPERTY_SIZE(Status), &Status, sizeof(Status), &cbBytes); Status.SignalStrength возвращает 100 на частоте станции (и за 50 кгц до неё) val=0; pKsBase->Set(KSPROPSETID_ANALOG_TUNER_API, KSPROPERTY_ID_TUNER_SCAN_MODE, NULL, 0, &val, sizeof(val)); Звук появился pKsBase->Release(); pKsTuner->Release(); (сообщение было отредактировано) |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |