Метод работает на эмуляторе, но нет на устройстве Microsoft Surface?
У меня есть следующий код. Метод StartRecord выдает ошибку на Microsoft Surface Unit. Но когда я тестирую его на эмуляторе, все отлично работает. Любые намеки, как
1) найти исключение, которое выбрасывается на Microsoft Surface Unit?
2) найти ошибку в коде? какие-либо предположения?
private void StartRecord(object sender, ContactEventArgs e)
{
isRecording = true;
StartButton.IsEnabled = false;
recordTimer = new Timer(10);
recordTimer.Elapsed += new ElapsedEventHandler(recordTimer_Elapsed);
PlaybackRoot.Visibility = System.Windows.Visibility.Collapsed;
EllapsedRecord.Visibility = System.Windows.Visibility.Visible;
InputLevel.Visibility = System.Windows.Visibility.Visible;
long time = DateTime.Now.Ticks;
String fileName = Convert.ToString(time) + ".wav";
Console.WriteLine(fileName);
startTime = DateTime.UtcNow;
recordTimer.Start();
record = new AudioRecording(fileName);
record.getSampleAggregator().MaximumCalculated += new EventHandler<MaxSampleEventArgs>(AudioControl_MaximumCalculated);
record.start();
}
2 ответа
Решение
Я не знаком с Surface, но если у вас нет каких-либо инструментов отладки, я бы начал, оборачивая все в try
блок, так что сообщение об исключении и callstack могут быть получены:
try
{
//Method code here
}
catch (Exception ex)
{
//Output the exeption messages here, use a recursive method to get those of inner exceptions as well.
//Example method to get the messages as string:
//
//public static string ExceptionToString(Exception ex)
//{
// if (ex == null) return "";
// else return " [" + ex.Message + ExceptionToString(ex.InnerException) + "]";
//}
//
//Also get the StackTrace (ex.StackTrace) and print it using whatever means available.
}
Это должно позволить вам еще более сузить проблему до конкретной операции.
Переведите Surface в "режим администратора" и запустите приложение оттуда. Также убедитесь, что вы используете отладочную сборку своего приложения, а не релиз.