0

Я уже разработал кнопку «Назад» и кнопку «вперед» с помощью xaml. Когда я нажимаю кнопку «Назад», мой экземпляр FM-радио должен начать искать радиочастоту ниже радиочастоты в соответствии с силой сигнала.Идите вперед и назад по радиочастоте FM

+1

Имеете ли вы код на все, что вы собрались вместе, чтобы попытаться заставить эту функциональность работать? – Bugs

ответ

0

привет есть код, чтобы сделать это

private void FastForwardButton_Click(object sender, RoutedEventArgs e) 
    { try 
     { do 
      { 
       ManageFrequencyChange(0.1); 
      } 
      while (FMRadio.Instance.SignalStrength * 100 < 65); 
     } 
     catch (RadioDisabledException ex) 
     { 

     } 
    } 

и refrence для этих

private void ManageFrequencyChange(double delta) 
    { 
     try 
     { 
      do 
      { 
       double frequency = FMRadio.Instance.Frequency; 
       frequency += delta; 
       switch (wpradio.CurrentRegion) 
       { 
        case RadioRegion.Europe: 
         if (frequency < minFrequencyEurope) 
          frequency = maxFrequencyEurope; 
         if (frequency > maxFrequencyEurope) 
          frequency = minFrequencyEurope; 
         break; 
        case RadioRegion.Japan: 
         if (frequency < minFrequencyJapan) 
          frequency = maxFrequencyJapan; 
         if (frequency > maxFrequencyJapan) 
          frequency = minFrequencyJapan; 
         break; 
        case RadioRegion.UnitedStates: 
         if (frequency < minFrequencyUnitedStates) 
          frequency = maxFrequencyUnitedStates; 
         if (frequency > maxFrequencyUnitedStates) 
          frequency = minFrequencyUnitedStates; 
         break; 

        default: 
         //Throw new ArgumentException();        
         break; 
       } 
      } 
      while (!IsFrequencyCorrect(frequency)); 
      wpradio.Frequency = Math.Round(frequency, 1); 
     } 
     catch { } 
    } 


    private bool IsFrequencyCorrect(double frequency) 
    { 
     string separator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; 
     bool isCorrect = false; 
     string frequencyAsString = Math.Round(frequency, 1).ToString(); 
     switch (wpradio.CurrentRegion) 
     { 
      case RadioRegion.Europe: 
       isCorrect = frequencyAsString.EndsWith(string.Format("{0}1", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}3", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}5", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}6", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}7", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}8", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}0", separator)); 
       break; 
      case RadioRegion.Japan: 
       //check here the correctness of frequency for this position 
       isCorrect = frequencyAsString.EndsWith(string.Format("{0}1", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}2", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}3", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}5", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}6", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}7", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}8", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}9", separator)) || 
        frequencyAsString.EndsWith(string.Format("{0}0", separator)); 
       break; 
      case RadioRegion.UnitedStates: 
       //check here the correctness of frequency for this position      
       break; 
      default: 
       throw new ArgumentOutOfRangeException(); 
     } 
     return 
      isCorrect; 

и определить минимальное и максимальное частоту перед инициализировать

public partial class MainPage : PhoneApplicationPage 
{    
    private const double minFrequencyEurope = 88; 
    private const double maxFrequencyEurope = 108; 
    private const double minFrequencyUnitedStates = 88.1; 
    private const double maxFrequencyUnitedStates = 107.9; 
    private const double minFrequencyJapan = 76; 
    private const double maxFrequencyJapan = 90; 
    public MainPage() 
Смежные вопросы