Запись звука с микрофона в Monotouch.Dialog

Пример Xamarin, найденный здесь: http://docs.xamarin.com/samples/Sound работает, но графический интерфейс не является Monotouch.Dialog, и он выглядит плохо вместе с остальной частью моего приложения MD.

Как добавить контроллер Monotouch.Dialog, чтобы начать и остановить запись и показать прошедшее время во время записи.

Apple сделала это http://developer.apple.com/library/ios/#samplecode/SpeakHere/Introduction/Intro.html с включенным измерителем громкости.


person Claus Elmann    schedule 28.02.2013    source источник
comment
У вас все еще есть проблемы с этим, после того, как вы увидели мой ответ?   -  person BRogers    schedule 11.03.2013


Ответы (1)


Посмотрите на этот класс в образце Xamarin https://github.com/xamarin/monotouch-samples/blob/master/Sound/Sound/SoundViewController.cs

По сути, вы хотели бы создать свои собственные DialogViewController: вам понадобятся операторы using из примера.

using MonoTouch.AVFoundation;
using System.Diagnostics;
using System.IO;
using MonoTouch.AudioToolbox;

public class SoundRecorder : DialogViewController {
    this.Title = "Record Sound";
    root = new RootElement() {
        new section () {
            new StringElement ("Record", delegate {
                // sound recording code from sample for the first button
            }
        }
    }
}

Это должно дать вам начало.

Вы можете разделить элементы и объявить их отдельно следующим образом:

StringElement myElement = new StyledStringElement("record something"); 

Затем вы можете подписаться на событие tapped с помощью делегата и обрабатывать нажатие кнопки таким же образом. Так что вы можете сделать немного больше. Для большего выбора стилей вам понадобится StyledStringElement

Надеюсь это поможет

person BRogers    schedule 08.03.2013
comment
Вам также понадобится оператор MT.D using - person BRogers; 08.03.2013
comment
Спасибо. Вы знаете, как заставить электронный секундомер обновлять элемент во время записи? - person Claus Elmann; 19.03.2013
comment
Я думал, что это было в примере кода в ссылке. Если нет, вам придется использовать таймер и постоянно обновлять пользовательский интерфейс основных потоков. Я считаю, что ответил на ваш первоначальный пост своим ответом выше. Если это так, пожалуйста, отметьте это как ответ. Привет ~ Блейк - person BRogers; 20.03.2013