| Текущее время: 04 ноя 2025, 08:45 • Часовой пояс: UTC + 3 часа  | 
   
 
  
API для USB моделей
  
      |   | 
      Страница 1 из 1 | 
      [ Сообщений: 13 ] | 
       | 
    
   
 
  
    
      | Автор | Сообщение |  
    
      
	| 
	  Ozab
	 | 
	
	  
	 | 
       
      
	| 
	  
	   Зарегистрирован:     29 окт 2009, 16:03 Сообщения: 8 
	 | 
	
	  
	   Существует ли API для Wander, Voyager? 
	  
	 | 
       
      
	 | 
	
	  
	  
	     
	      
	     
	  
	 | 
       
    
   
  
    
      
	| 
	  Admin
	 | 
	
	  
	    
	      
	        Добавлено: 30 окт 2009, 10:48. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	
	  
	    | Beholder |    |  
	   
	  Зарегистрирован:     13 июл 2004, 13:23 Сообщения: 1089 
	 | 
	
	  
	   Какое API вы имеете ввиду?
 Все имеющиеся у нас API абсолютно одинаковы для всех наших тюнеров. 
	  
	 | 
       
      
	 | 
	
	  
	  
	     
	      
	     
	  
	 | 
       
    
   
  
    
      
	| 
	  Ozab
	 | 
	
	  
	    
	      
	        Добавлено: 30 окт 2009, 11:12. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	| 
	  
	   Зарегистрирован:     29 окт 2009, 16:03 Сообщения: 8 
	 | 
	
	  
	   Извините, стормозил.
 Могу ли я управлять тюнером из своего приложения, не запуская BeholdTV? 
	  
	 | 
       
      
	 | 
	
	  
	  
	     
	      
	     
	  
	 | 
       
    
   
  
    
      
	| 
	  ALF
	 | 
	
	  
	    
	      
	        Добавлено: 30 окт 2009, 11:43. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	
	  
	    | Эксперт |    |  
	   
	  Зарегистрирован:     02 апр 2006, 21:37 Сообщения: 1329 
	 | 
	
	  
	  Ozab писал(а): Могу ли я управлять тюнером из своего приложения, не запуская BeholdTV? 
Можете. Вот тот API, который вам нужен:  http://msdn.microsoft.com/en-us/library/dd375454(VS.85).aspx  
	  
	    Behold TV M6 Extra Behold TV H8 Behold TV T8 
	  
	 | 
       
      
	 | 
	
	  
	  
	     
	      
	     
	  
	 | 
       
    
   
  
    
      
	| 
	  Ozab
	 | 
	
	  
	    
	      
	        Добавлено: 30 окт 2009, 14:10. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	| 
	  
	   Зарегистрирован:     29 окт 2009, 16:03 Сообщения: 8 
	 | 
	
	  
	   Спасибо, а FM радио? 
	  
	 | 
       
      
	 | 
	
	  
	  
	     
	      
	     
	  
	 | 
       
    
   
  
    
      
	| 
	  ALF
	 | 
	
	  
	    
	      
	        Добавлено: 30 окт 2009, 16:35. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	
	  
	    | Эксперт |    |  
	   
	  Зарегистрирован:     02 апр 2006, 21:37 Сообщения: 1329 
	 | 
	
	  
	   То же самое. 
	  
	    Behold TV M6 Extra Behold TV H8 Behold TV T8 
	  
	 | 
       
      
	 | 
	
	  
	  
	     
	      
	     
	  
	 | 
       
    
   
  
    
      
	| 
	  Ozab
	 | 
	
	  
	    
	      
	        Добавлено: 30 окт 2009, 16:52. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	| 
	  
	   Зарегистрирован:     29 окт 2009, 16:03 Сообщения: 8 
	 | 
	
	  
	   Большое спасибо, буду рыть. 
	  
	 | 
       
      
	 | 
	
	  
	  
	     
	      
	     
	  
	 | 
       
    
   
  
    
      
	| 
	  Ozab
	 | 
	
	  
	    
	      
	        Добавлено: 14 июн 2010, 12:29. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	| 
	  
	   Зарегистрирован:     29 окт 2009, 16:03 Сообщения: 8 
	 | 
	
	  
	  ALF писал(а): 
У меня уже легкое головокружение от DirectShow   
Можно где-нибудь увидеть пример автоматического поиска FM радиостанции в определенном диапазоне частот, с остановкой при определении несущей?  
	  
	 | 
       
      
	 | 
	
	  
	  
	     
	      
	     
	  
	 | 
       
    
   
  
    
      
	| 
	  hd44780
	 | 
	
	  
	    
	      
	        Добавлено: 15 июн 2010, 10:55. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	
	  
	    | Эксперт |    |  
	   
	  Зарегистрирован:     23 мар 2007, 14:32 Сообщения: 4034 Откуда: РФ, ДНР, Донецк 
	 | 
	
	  
	  Ozab писал(а): У меня уже легкое головокружение от DirectShow   Привыкай   . Так оно организовано. Без Directshow ты далеко не уедешь. Или ищи какие-то библиотеки, облегчающие жизнь. Ozab писал(а): Можно где-нибудь увидеть пример автоматического поиска FM радиостанции в определенном диапазоне частот, с остановкой при определении несущей? 
Где-то валялось... Какой-то добрый человек поделился. На моем стареньком Aver 203 работало. Правда я искал TV каналы. с FM не игрался.
 На более новых тюнерах не пробовал - закинул это дело.
 Если надо, пороюсь в своих архивах.  
	  
	    Behold TV 609FM, Behold TV X7 Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB. Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику. 
	  
	 | 
       
      
	 | 
	
	  
	  
	     
	      
	     
	  
	 | 
       
    
   
  
    
      
	| 
	  Ozab
	 | 
	
	  
	    
	      
	        Добавлено: 15 июн 2010, 16:10. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	| 
	  
	   Зарегистрирован:     29 окт 2009, 16:03 Сообщения: 8 
	 | 
	
	  
	  С телевизором всё просто - там если развертка есть, то и канал есть. А с FM что-то не въеду никак насчет автопоиска. Мож суппорт что подскажет?    
Может-как-нибудь через dll или ioctl можно?  
	  
	 | 
       
      
	 | 
	
	  
	  
	     
	      
	     
	  
	 | 
       
    
   
  
    
      
	| 
	  Ozab
	 | 
	
	  
	    
	      
	        Добавлено: 23 июн 2010, 16:23. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	| 
	  
	   Зарегистрирован:     29 окт 2009, 16:03 Сообщения: 8 
	 | 
	
	  
	   И всё-таки, что не так?
 
 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. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	
	  
	    | Beholder |    |  
	   
	  Зарегистрирован:     19 авг 2004, 11:45 Сообщения: 616 
	 | 
	
	  
	  Для 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. Заголовок сообщения:  | 
	       | 
	      
	     
	   
	 | 
       
      
	| 
	  
	   Зарегистрирован:     29 окт 2009, 16:03 Сообщения: 8 
	 | 
	
	  
	   БОЛЬШОЕ спасибо за раскрытие фирменного секрета, всё работает отлично!
 
 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 | 
       [ Сообщений: 13 ] | 
        | 
    
   
 
  
    | Кто сейчас на конференции |  
    | Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2 |  
   
  
    
    
      Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения 
     | 
   
 
 
 |