Home
FM Radio and TV Tuning

Select video and audio capture devices

Select needed video input (configure crossbar)

Select audio output

 

Get list of available TV Tuners

Delphi for I := 0 to VideoCapture1.TVTuner_Devices_GetCount - 1 do
cbTVTuner.Items.Add(VideoCapture1.TVTuner_Devices_GetItem(i));
C++/C# for (int i = 0; i < VideoCapture1.TVTuner_Devices_GetCount(); i++)
cbTVTuner.Items.Add(VideoCapture1.TVTuner_Devices_GetItem(i));

 

Get list of available TV formats

Delphi for I := 0 to VideoCapture1.TVTuner_TVFormats_GetCount - 1 do
cbTVSystem.Items.Add(VideoCapture1.TVTuner_TVFormats_GetItem(i));
C++/C# for (int i = 0; i < VideoCapture1.TVTuner_TVFormats_GetCount(); i++)
cbTVSystem.Items.Add(VideoCapture1.TVTuner_TVFormats_GetItem(i));

 

Get list of countries

Delphi for I := 0 to VideoCapture1.TVTuner_Countries_GetCount - 1 do
cbTVCountry.Items.Add(VideoCapture1.TVTuner_Countries_GetItem(i));
C++/C# for (int i = 0; i < VideoCapture1.TVTuner_Countries_GetCount(); i++)
cbTVCountry.Items.Add(VideoCapture1.TVTuner_Countries_GetItem(i));

 

Select TV Tuner

Delphi VideoCapture1.TVTuner_Name := cbTVTuner.Items[cbTVTuner.ItemIndex];
C++/C# VideoCapture1.TVTuner_Name = cbTVTuner.Text;

 

tv_tuning_1

 

Read TV Tuner settings

Delphi VideoCapture1.TVTuner_Read;
C++/C# VideoCapture1.TVTuner_Read();

 

Get list of available TV modes

Delphi for I := 0 to VideoCapture1.TVTuner_Modes_GetCount - 1 do
cbTVMode.Items.Add(VideoCapture1.TVTuner_Modes_GetItem(i));
C++/C# for (int i = 0; i < VideoCapture1.TVTuner_Modes_GetCount(); i++)
cbTVMode.Items.Add(VideoCapture1.TVTuner_Modes_GetItem(i));

 

Get current audio and video frequencies.

Delphi edVideoFreq.Text := IntToStr(VideoCapture1.TVTuner_VideoFrequency);
edAudiofreq.Text := IntToStr(VideoCapture1.TVTuner_AudioFrequency);
C++/C# edVideoFreq.Text = Convert.ToString(VideoCapture1.TVTuner_VideoFrequency);
edAudioFreq.Text = Convert.ToString(VideoCapture1.TVTuner_AudioFrequency);

 

Select signal source

Delphi cbTVInput.ItemIndex := cbTVInput.Items.IndexOf(VideoCapture1.TVTuner_InputType);
C++/C# cbTVInput.SelectedIndex = cbTVInput.Items.IndexOf(VideoCapture1.TVTuner_InputType);

 

tv_tuning_2

 

Select work mode

Delphi cbTVMode.ItemIndex := cbTVMode.Items.IndexOf(VideoCapture1.TVTuner_Mode);
C++/C# cbTVMode.SelectedIndex = cbTVMode.Items.IndexOf(VideoCapture1.TVTuner_Mode);

 

tv_tuning_3

 

Select TV system (PAL, NTSC, SECAM, etc.)

Delphi cbTVSystem.ItemIndex := cbTVSystem.Items.IndexOf(VideoCapture1.TVTuner_TVFormat);
C++/C# cbTVSystem.SelectedIndex = cbTVSystem.Items.IndexOf(VideoCapture1.TVTuner_TVFormat);

 

tv_tuning_4

Select country

Delphi cbTVCountry.ItemIndex := cbTVCountry.Items.IndexOf(VideoCapture1.TVTuner_Country);
C++/C# cbTVCountry.SelectedIndex = cbTVCountry.Items.IndexOf(VideoCapture1.TVTuner_Country);

 

Write TVTuner_TuneChannels event code.

Delphi 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;
C++/C# 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");
};
}

 

Start tune process

Delphi

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;

C++/C# 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;};

VideoCapture1.TVTuner_TuneChannels_Start();

 

tv_tuning_6

Once each channel is found, the event will be called and the channel will be added to the combobox. Also, you can specify the frequency and number of each channel manually.

Set channels by number

Delphi VideoCapture1.TVTuner_Channel := StrToInt(edChannel.Text);
VideoCapture1.TVTuner_Apply;
C++/C# VideoCapture1.TVTuner_Channel = Convert.ToInt32(edChannel.Text);
VideoCapture1.TVTuner_Apply();

tv_tuning_7

Set channel by frequency

Delphi VideoCapture1.TVTuner_Channel := -1; // must be -1 to use frequency
VideoCapture1.TVTuner_Frequency := StrToInt(edChannel.Text);
VideoCapture1.TVTuner_Apply;
C++/C# VideoCapture1.TVTuner_Channel = -1; // must be -1 to use frequency
VideoCapture1.TVTuner_Frequency = Convert.ToInt32(edChannel.Text);
VideoCapture1.TVTuner_Apply();

tv_tuning_8

 

Follow us on Twitter