Delphi and C# (ActiveX) sample code.
Get the list of available TV Tuners
for I := 0 to VideoCapture1.TVTuner_Devices_GetCount - 1 do cbTVTuner.Items.Add(VideoCapture1.TVTuner_Devices_GetItem(i));
for (int i = 0; i < VideoCapture1.TVTuner_Devices_GetCount(); i++) cbTVTuner.Items.Add(VideoCapture1.TVTuner_Devices_GetItem(i));
for I := 0 to VideoCapture1.TVTuner_TVFormats_GetCount - 1 do cbTVSystem.Items.Add(VideoCapture1.TVTuner_TVFormats_GetItem(i));
for (int i = 0; i < VideoCapture1.TVTuner_TVFormats_GetCount(); i++) cbTVSystem.Items.Add(VideoCapture1.TVTuner_TVFormats_GetItem(i));
for I := 0 to VideoCapture1.TVTuner_Countries_GetCount - 1 do cbTVCountry.Items.Add(VideoCapture1.TVTuner_Countries_GetItem(i));
for (int i = 0; i < VideoCapture1.TVTuner_Countries_GetCount(); i++) cbTVCountry.Items.Add(VideoCapture1.TVTuner_Countries_GetItem(i));
VideoCapture1.TVTuner_Name := cbTVTuner.Items[cbTVTuner.ItemIndex];
VideoCapture1.TVTuner_Name = cbTVTuner.Text;
VideoCapture1.TVTuner_Read;
VideoCapture1.TVTuner_Read();
for I := 0 to VideoCapture1.TVTuner_Modes_GetCount - 1 do cbTVMode.Items.Add(VideoCapture1.TVTuner_Modes_GetItem(i));
for (int i = 0; i < VideoCapture1.TVTuner_Modes_GetCount(); i++) cbTVMode.Items.Add(VideoCapture1.TVTuner_Modes_GetItem(i));
edVideoFreq.Text := IntToStr(VideoCapture1.TVTuner_VideoFrequency); edAudiofreq.Text := IntToStr(VideoCapture1.TVTuner_AudioFrequency);
edVideoFreq.Text = Convert.ToString(VideoCapture1.TVTuner_VideoFrequency); edAudioFreq.Text = Convert.ToString(VideoCapture1.TVTuner_AudioFrequency);
cbTVInput.ItemIndex := cbTVInput.Items.IndexOf(VideoCapture1.TVTuner_InputType);
cbTVInput.SelectedIndex = cbTVInput.Items.IndexOf(VideoCapture1.TVTuner_InputType);
cbTVMode.ItemIndex := cbTVMode.Items.IndexOf(VideoCapture1.TVTuner_Mode);
cbTVMode.SelectedIndex = cbTVMode.Items.IndexOf(VideoCapture1.TVTuner_Mode);
cbTVSystem.ItemIndex := cbTVSystem.Items.IndexOf(VideoCapture1.TVTuner_TVFormat);
cbTVSystem.SelectedIndex = cbTVSystem.Items.IndexOf(VideoCapture1.TVTuner_TVFormat);
cbTVCountry.ItemIndex := cbTVCountry.Items.IndexOf(VideoCapture1.TVTuner_Country);
cbTVCountry.SelectedIndex = cbTVCountry.Items.IndexOf(VideoCapture1.TVTuner_Country);
procedure TForm1.VideoCapture1TVTunerTuneChannels(SignalPresent: Boolean; Channel, Frequency, Progress: Integer); begin pbChannels.Position := Progress; if SignalPresent then cbTVChannel.Items.Add(IntToStr(Channel)); if Channel = -1 then begin pbChannels.Position := 0; ShowMessage('AutoTune complete'); end; end;
private void VideoCapture1_OnTVTunerTuneChannels( object sender, AxVisioForge_Video_Capture_3.IVFVideoCaptureXEvents_OnTVTunerTuneChannelsEvent e) { pbChannels.Value = e.progress; if (e.signalPresent) cbTVChannel.Items.Add(e.channel.ToString()); if (e.channel == -1) { pbChannels.Value = 0; MessageBox.Show("AutoTune complete"); }; }
const KHz = 1000; const MHz = 1000000; VideoCapture1.TVTuner_Read; cbTVChannel.Items.Clear; //If you select FM Tuning, you can specify the initial frequencies and the scanning pitch if ( (cbTVMode.ItemIndex <> -1) and (cbTVMode.Items[cbTVMode.ItemIndex] = 'FM Radio') ) then begin VideoCapture1.TVTuner_FM_Tuning_StartFrequency := 100 * Mhz; VideoCapture1.TVTuner_FM_Tuning_StopFrequency := 110 * MHz; VideoCapture1.TVTuner_FM_Tuning_Step := 100 * KHz; end; VideoCapture1.TVTuner_TuneChannels_Start;
const int KHz = 1000; const int MHz = 1000000; VideoCapture1.TVTuner_Read(); cbTVChannel.Items.Clear(); //If you select FM Tuning, you can specify the initial frequencies and the scanning pitch if ( (cbTVMode.SelectedIndex != -1) && (cbTVMode.Text == "FM Radio") ) { VideoCapture1.TVTuner_FM_Tuning_StartFrequency = 100 * MHz; VideoCapture1.TVTuner_FM_Tuning_StopFrequency = 110 * MHz; VideoCapture1.TVTuner_FM_Tuning_Step = 100 * KHz;};
Once each channel is found, the event will be called and the channel will be added to the combo-box. Also, you can specify the frequency and number of each channel manually.
Set channels by number
VideoCapture1.TVTuner_Channel := StrToInt(edChannel.Text); VideoCapture1.TVTuner_Apply;
VideoCapture1.TVTuner_Channel = Convert.ToInt32(edChannel.Text); VideoCapture1.TVTuner_Apply();
VideoCapture1.TVTuner_Channel := -1; // must be -1 to use frequency VideoCapture1.TVTuner_Frequency := StrToInt(edChannel.Text); VideoCapture1.TVTuner_Apply;
VideoCapture1.TVTuner_Channel = -1; // must be -1 to use frequency VideoCapture1.TVTuner_Frequency = Convert.ToInt32(edChannel.Text); VideoCapture1.TVTuner_Apply();